{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
    "    <a href=\"https://cocl.us/corsera_da0101en_notebook_top\">\n",
    "         <img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/TopAd.png\" width=\"750\" align=\"center\">\n",
    "    </a>\n",
    "</div>\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a href=\"https://www.bigdatauniversity.com\"><img src = \"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/CCLog.png\" width = 300, align = \"center\"></a>\n",
    "\n",
    "<h1 align=center><font size = 5>Data Analysis with Python</font></h1>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Exploratory Data Analysis"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h3>Welcome!</h3>\n",
    "In this section, we will explore several methods to see if certain characteristics or features can be used to predict car price. "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h2>Table of content</h2>\n",
    "\n",
    "<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
    "<ol>\n",
    "    <li><a href=\"#import_data\">Import Data from Module</a></li>\n",
    "    <li><a href=\"#pattern_visualization\">Analyzing Individual Feature Patterns using Visualization</a></li>\n",
    "    <li><a href=\"#discriptive_statistics\">Descriptive Statistical Analysis</a></li>\n",
    "    <li><a href=\"#basic_grouping\">Basics of Grouping</a></li>\n",
    "    <li><a href=\"#correlation_causation\">Correlation and Causation</a></li>\n",
    "    <li><a href=\"#anova\">ANOVA</a></li>\n",
    "</ol>\n",
    "    \n",
    "Estimated Time Needed: <strong>30 min</strong>\n",
    "</div>\n",
    " \n",
    "<hr>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h3>What are the main characteristics which have the most impact on the car price?</h3>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h2 id=\"import_data\">1. Import Data from Module 2</h2>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h4>Setup</h4>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    " Import libraries "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    " load data and store in dataframe df:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This dataset was hosted on IBM Cloud object click <a href=\"https://cocl.us/DA101EN_object_storage\">HERE</a> for free storage"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>symboling</th>\n",
       "      <th>normalized-losses</th>\n",
       "      <th>make</th>\n",
       "      <th>aspiration</th>\n",
       "      <th>num-of-doors</th>\n",
       "      <th>body-style</th>\n",
       "      <th>drive-wheels</th>\n",
       "      <th>engine-location</th>\n",
       "      <th>wheel-base</th>\n",
       "      <th>length</th>\n",
       "      <th>...</th>\n",
       "      <th>compression-ratio</th>\n",
       "      <th>horsepower</th>\n",
       "      <th>peak-rpm</th>\n",
       "      <th>city-mpg</th>\n",
       "      <th>highway-mpg</th>\n",
       "      <th>price</th>\n",
       "      <th>city-L/100km</th>\n",
       "      <th>horsepower-binned</th>\n",
       "      <th>diesel</th>\n",
       "      <th>gas</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>122</td>\n",
       "      <td>alfa-romero</td>\n",
       "      <td>std</td>\n",
       "      <td>two</td>\n",
       "      <td>convertible</td>\n",
       "      <td>rwd</td>\n",
       "      <td>front</td>\n",
       "      <td>88.6</td>\n",
       "      <td>0.811148</td>\n",
       "      <td>...</td>\n",
       "      <td>9.0</td>\n",
       "      <td>111.0</td>\n",
       "      <td>5000.0</td>\n",
       "      <td>21</td>\n",
       "      <td>27</td>\n",
       "      <td>13495.0</td>\n",
       "      <td>11.190476</td>\n",
       "      <td>Medium</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>122</td>\n",
       "      <td>alfa-romero</td>\n",
       "      <td>std</td>\n",
       "      <td>two</td>\n",
       "      <td>convertible</td>\n",
       "      <td>rwd</td>\n",
       "      <td>front</td>\n",
       "      <td>88.6</td>\n",
       "      <td>0.811148</td>\n",
       "      <td>...</td>\n",
       "      <td>9.0</td>\n",
       "      <td>111.0</td>\n",
       "      <td>5000.0</td>\n",
       "      <td>21</td>\n",
       "      <td>27</td>\n",
       "      <td>16500.0</td>\n",
       "      <td>11.190476</td>\n",
       "      <td>Medium</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>122</td>\n",
       "      <td>alfa-romero</td>\n",
       "      <td>std</td>\n",
       "      <td>two</td>\n",
       "      <td>hatchback</td>\n",
       "      <td>rwd</td>\n",
       "      <td>front</td>\n",
       "      <td>94.5</td>\n",
       "      <td>0.822681</td>\n",
       "      <td>...</td>\n",
       "      <td>9.0</td>\n",
       "      <td>154.0</td>\n",
       "      <td>5000.0</td>\n",
       "      <td>19</td>\n",
       "      <td>26</td>\n",
       "      <td>16500.0</td>\n",
       "      <td>12.368421</td>\n",
       "      <td>Medium</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "      <td>164</td>\n",
       "      <td>audi</td>\n",
       "      <td>std</td>\n",
       "      <td>four</td>\n",
       "      <td>sedan</td>\n",
       "      <td>fwd</td>\n",
       "      <td>front</td>\n",
       "      <td>99.8</td>\n",
       "      <td>0.848630</td>\n",
       "      <td>...</td>\n",
       "      <td>10.0</td>\n",
       "      <td>102.0</td>\n",
       "      <td>5500.0</td>\n",
       "      <td>24</td>\n",
       "      <td>30</td>\n",
       "      <td>13950.0</td>\n",
       "      <td>9.791667</td>\n",
       "      <td>Medium</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>164</td>\n",
       "      <td>audi</td>\n",
       "      <td>std</td>\n",
       "      <td>four</td>\n",
       "      <td>sedan</td>\n",
       "      <td>4wd</td>\n",
       "      <td>front</td>\n",
       "      <td>99.4</td>\n",
       "      <td>0.848630</td>\n",
       "      <td>...</td>\n",
       "      <td>8.0</td>\n",
       "      <td>115.0</td>\n",
       "      <td>5500.0</td>\n",
       "      <td>18</td>\n",
       "      <td>22</td>\n",
       "      <td>17450.0</td>\n",
       "      <td>13.055556</td>\n",
       "      <td>Medium</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 29 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   symboling  normalized-losses         make aspiration num-of-doors  \\\n",
       "0          3                122  alfa-romero        std          two   \n",
       "1          3                122  alfa-romero        std          two   \n",
       "2          1                122  alfa-romero        std          two   \n",
       "3          2                164         audi        std         four   \n",
       "4          2                164         audi        std         four   \n",
       "\n",
       "    body-style drive-wheels engine-location  wheel-base    length  ...  \\\n",
       "0  convertible          rwd           front        88.6  0.811148  ...   \n",
       "1  convertible          rwd           front        88.6  0.811148  ...   \n",
       "2    hatchback          rwd           front        94.5  0.822681  ...   \n",
       "3        sedan          fwd           front        99.8  0.848630  ...   \n",
       "4        sedan          4wd           front        99.4  0.848630  ...   \n",
       "\n",
       "   compression-ratio  horsepower  peak-rpm city-mpg highway-mpg    price  \\\n",
       "0                9.0       111.0    5000.0       21          27  13495.0   \n",
       "1                9.0       111.0    5000.0       21          27  16500.0   \n",
       "2                9.0       154.0    5000.0       19          26  16500.0   \n",
       "3               10.0       102.0    5500.0       24          30  13950.0   \n",
       "4                8.0       115.0    5500.0       18          22  17450.0   \n",
       "\n",
       "  city-L/100km  horsepower-binned  diesel  gas  \n",
       "0    11.190476             Medium       0    1  \n",
       "1    11.190476             Medium       0    1  \n",
       "2    12.368421             Medium       0    1  \n",
       "3     9.791667             Medium       0    1  \n",
       "4    13.055556             Medium       0    1  \n",
       "\n",
       "[5 rows x 29 columns]"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "path='https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/automobileEDA.csv'\n",
    "df = pd.read_csv(path)\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h2 id=\"pattern_visualization\">2. Analyzing Individual Feature Patterns using Visualization</h2>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "To install seaborn we use the pip which is the python package manager."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "%%capture # https://nbviewer.jupyter.org/github/ipython/ipython/blob/1.x/examples/notebooks/Cell%20Magics.ipynb\n",
    "! pip install seaborn"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/json": {
       "cell": {
        "!": "OSMagics",
        "HTML": "Other",
        "SVG": "Other",
        "bash": "Other",
        "capture": "ExecutionMagics",
        "debug": "ExecutionMagics",
        "file": "Other",
        "html": "DisplayMagics",
        "javascript": "DisplayMagics",
        "js": "DisplayMagics",
        "latex": "DisplayMagics",
        "markdown": "DisplayMagics",
        "perl": "Other",
        "prun": "ExecutionMagics",
        "pypy": "Other",
        "python": "Other",
        "python2": "Other",
        "python3": "Other",
        "ruby": "Other",
        "script": "ScriptMagics",
        "sh": "Other",
        "svg": "DisplayMagics",
        "sx": "OSMagics",
        "system": "OSMagics",
        "time": "ExecutionMagics",
        "timeit": "ExecutionMagics",
        "writefile": "OSMagics"
       },
       "line": {
        "alias": "OSMagics",
        "alias_magic": "BasicMagics",
        "autoawait": "AsyncMagics",
        "autocall": "AutoMagics",
        "automagic": "AutoMagics",
        "autosave": "KernelMagics",
        "bookmark": "OSMagics",
        "cat": "Other",
        "cd": "OSMagics",
        "clear": "KernelMagics",
        "colors": "BasicMagics",
        "conda": "PackagingMagics",
        "config": "ConfigMagics",
        "connect_info": "KernelMagics",
        "cp": "Other",
        "debug": "ExecutionMagics",
        "dhist": "OSMagics",
        "dirs": "OSMagics",
        "doctest_mode": "BasicMagics",
        "ed": "Other",
        "edit": "KernelMagics",
        "env": "OSMagics",
        "gui": "BasicMagics",
        "hist": "Other",
        "history": "HistoryMagics",
        "killbgscripts": "ScriptMagics",
        "ldir": "Other",
        "less": "KernelMagics",
        "lf": "Other",
        "lk": "Other",
        "ll": "Other",
        "load": "CodeMagics",
        "load_ext": "ExtensionMagics",
        "loadpy": "CodeMagics",
        "logoff": "LoggingMagics",
        "logon": "LoggingMagics",
        "logstart": "LoggingMagics",
        "logstate": "LoggingMagics",
        "logstop": "LoggingMagics",
        "ls": "Other",
        "lsmagic": "BasicMagics",
        "lx": "Other",
        "macro": "ExecutionMagics",
        "magic": "BasicMagics",
        "man": "KernelMagics",
        "matplotlib": "PylabMagics",
        "mkdir": "Other",
        "more": "KernelMagics",
        "mv": "Other",
        "notebook": "BasicMagics",
        "page": "BasicMagics",
        "pastebin": "CodeMagics",
        "pdb": "ExecutionMagics",
        "pdef": "NamespaceMagics",
        "pdoc": "NamespaceMagics",
        "pfile": "NamespaceMagics",
        "pinfo": "NamespaceMagics",
        "pinfo2": "NamespaceMagics",
        "pip": "PackagingMagics",
        "popd": "OSMagics",
        "pprint": "BasicMagics",
        "precision": "BasicMagics",
        "prun": "ExecutionMagics",
        "psearch": "NamespaceMagics",
        "psource": "NamespaceMagics",
        "pushd": "OSMagics",
        "pwd": "OSMagics",
        "pycat": "OSMagics",
        "pylab": "PylabMagics",
        "qtconsole": "KernelMagics",
        "quickref": "BasicMagics",
        "recall": "HistoryMagics",
        "rehashx": "OSMagics",
        "reload_ext": "ExtensionMagics",
        "rep": "Other",
        "rerun": "HistoryMagics",
        "reset": "NamespaceMagics",
        "reset_selective": "NamespaceMagics",
        "rm": "Other",
        "rmdir": "Other",
        "run": "ExecutionMagics",
        "save": "CodeMagics",
        "sc": "OSMagics",
        "set_env": "OSMagics",
        "store": "StoreMagics",
        "sx": "OSMagics",
        "system": "OSMagics",
        "tb": "ExecutionMagics",
        "time": "ExecutionMagics",
        "timeit": "ExecutionMagics",
        "unalias": "OSMagics",
        "unload_ext": "ExtensionMagics",
        "who": "NamespaceMagics",
        "who_ls": "NamespaceMagics",
        "whos": "NamespaceMagics",
        "xdel": "NamespaceMagics",
        "xmode": "BasicMagics"
       }
      },
      "text/plain": [
       "Available line magics:\n",
       "%alias  %alias_magic  %autoawait  %autocall  %automagic  %autosave  %bookmark  %cat  %cd  %clear  %colors  %conda  %config  %connect_info  %cp  %debug  %dhist  %dirs  %doctest_mode  %ed  %edit  %env  %gui  %hist  %history  %killbgscripts  %ldir  %less  %lf  %lk  %ll  %load  %load_ext  %loadpy  %logoff  %logon  %logstart  %logstate  %logstop  %ls  %lsmagic  %lx  %macro  %magic  %man  %matplotlib  %mkdir  %more  %mv  %notebook  %page  %pastebin  %pdb  %pdef  %pdoc  %pfile  %pinfo  %pinfo2  %pip  %popd  %pprint  %precision  %prun  %psearch  %psource  %pushd  %pwd  %pycat  %pylab  %qtconsole  %quickref  %recall  %rehashx  %reload_ext  %rep  %rerun  %reset  %reset_selective  %rm  %rmdir  %run  %save  %sc  %set_env  %store  %sx  %system  %tb  %time  %timeit  %unalias  %unload_ext  %who  %who_ls  %whos  %xdel  %xmode\n",
       "\n",
       "Available cell magics:\n",
       "%%!  %%HTML  %%SVG  %%bash  %%capture  %%debug  %%file  %%html  %%javascript  %%js  %%latex  %%markdown  %%perl  %%prun  %%pypy  %%python  %%python2  %%python3  %%ruby  %%script  %%sh  %%svg  %%sx  %%system  %%time  %%timeit  %%writefile\n",
       "\n",
       "Automagic is ON, % prefix IS NOT needed for line magics."
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "%lsmagic"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    " Import visualization packages \"Matplotlib\" and \"Seaborn\", don't forget about \"%matplotlib inline\" to plot in a Jupyter notebook."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    }
   },
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "%matplotlib inline "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h4>How to choose the right visualization method?</h4>\n",
    "<p>When visualizing individual variables, it is important to first understand what type of variable you are dealing with. This will help us find the right visualization method for that variable.</p>\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "symboling              int64\n",
      "normalized-losses      int64\n",
      "make                  object\n",
      "aspiration            object\n",
      "num-of-doors          object\n",
      "body-style            object\n",
      "drive-wheels          object\n",
      "engine-location       object\n",
      "wheel-base           float64\n",
      "length               float64\n",
      "width                float64\n",
      "height               float64\n",
      "curb-weight            int64\n",
      "engine-type           object\n",
      "num-of-cylinders      object\n",
      "engine-size            int64\n",
      "fuel-system           object\n",
      "bore                 float64\n",
      "stroke               float64\n",
      "compression-ratio    float64\n",
      "horsepower           float64\n",
      "peak-rpm             float64\n",
      "city-mpg               int64\n",
      "highway-mpg            int64\n",
      "price                float64\n",
      "city-L/100km         float64\n",
      "horsepower-binned     object\n",
      "diesel                 int64\n",
      "gas                    int64\n",
      "dtype: object\n"
     ]
    }
   ],
   "source": [
    "# list the data types for each column\n",
    "print(df.dtypes)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
    "<h3>Question  #1:</h3>\n",
    "\n",
    "<b>What is the data type of the column \"peak-rpm\"? </b>\n",
    "</div>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Double-click <b>here</b> for the solution.\n",
    "\n",
    "<!-- The answer is below:\n",
    "\n",
    "float64\n",
    "\n",
    "-->"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "for example, we can calculate the correlation between variables  of type \"int64\" or \"float64\" using the method \"corr\":"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>symboling</th>\n",
       "      <th>normalized-losses</th>\n",
       "      <th>wheel-base</th>\n",
       "      <th>length</th>\n",
       "      <th>width</th>\n",
       "      <th>height</th>\n",
       "      <th>curb-weight</th>\n",
       "      <th>engine-size</th>\n",
       "      <th>bore</th>\n",
       "      <th>stroke</th>\n",
       "      <th>compression-ratio</th>\n",
       "      <th>horsepower</th>\n",
       "      <th>peak-rpm</th>\n",
       "      <th>city-mpg</th>\n",
       "      <th>highway-mpg</th>\n",
       "      <th>price</th>\n",
       "      <th>city-L/100km</th>\n",
       "      <th>diesel</th>\n",
       "      <th>gas</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>symboling</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.466264</td>\n",
       "      <td>-0.535987</td>\n",
       "      <td>-0.365404</td>\n",
       "      <td>-0.242423</td>\n",
       "      <td>-0.550160</td>\n",
       "      <td>-0.233118</td>\n",
       "      <td>-0.110581</td>\n",
       "      <td>-0.140019</td>\n",
       "      <td>-0.008245</td>\n",
       "      <td>-0.182196</td>\n",
       "      <td>0.075819</td>\n",
       "      <td>0.279740</td>\n",
       "      <td>-0.035527</td>\n",
       "      <td>0.036233</td>\n",
       "      <td>-0.082391</td>\n",
       "      <td>0.066171</td>\n",
       "      <td>-0.196735</td>\n",
       "      <td>0.196735</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>normalized-losses</td>\n",
       "      <td>0.466264</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>-0.056661</td>\n",
       "      <td>0.019424</td>\n",
       "      <td>0.086802</td>\n",
       "      <td>-0.373737</td>\n",
       "      <td>0.099404</td>\n",
       "      <td>0.112360</td>\n",
       "      <td>-0.029862</td>\n",
       "      <td>0.055563</td>\n",
       "      <td>-0.114713</td>\n",
       "      <td>0.217299</td>\n",
       "      <td>0.239543</td>\n",
       "      <td>-0.225016</td>\n",
       "      <td>-0.181877</td>\n",
       "      <td>0.133999</td>\n",
       "      <td>0.238567</td>\n",
       "      <td>-0.101546</td>\n",
       "      <td>0.101546</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>wheel-base</td>\n",
       "      <td>-0.535987</td>\n",
       "      <td>-0.056661</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.876024</td>\n",
       "      <td>0.814507</td>\n",
       "      <td>0.590742</td>\n",
       "      <td>0.782097</td>\n",
       "      <td>0.572027</td>\n",
       "      <td>0.493244</td>\n",
       "      <td>0.158502</td>\n",
       "      <td>0.250313</td>\n",
       "      <td>0.371147</td>\n",
       "      <td>-0.360305</td>\n",
       "      <td>-0.470606</td>\n",
       "      <td>-0.543304</td>\n",
       "      <td>0.584642</td>\n",
       "      <td>0.476153</td>\n",
       "      <td>0.307237</td>\n",
       "      <td>-0.307237</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>length</td>\n",
       "      <td>-0.365404</td>\n",
       "      <td>0.019424</td>\n",
       "      <td>0.876024</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.857170</td>\n",
       "      <td>0.492063</td>\n",
       "      <td>0.880665</td>\n",
       "      <td>0.685025</td>\n",
       "      <td>0.608971</td>\n",
       "      <td>0.124139</td>\n",
       "      <td>0.159733</td>\n",
       "      <td>0.579821</td>\n",
       "      <td>-0.285970</td>\n",
       "      <td>-0.665192</td>\n",
       "      <td>-0.698142</td>\n",
       "      <td>0.690628</td>\n",
       "      <td>0.657373</td>\n",
       "      <td>0.211187</td>\n",
       "      <td>-0.211187</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>width</td>\n",
       "      <td>-0.242423</td>\n",
       "      <td>0.086802</td>\n",
       "      <td>0.814507</td>\n",
       "      <td>0.857170</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.306002</td>\n",
       "      <td>0.866201</td>\n",
       "      <td>0.729436</td>\n",
       "      <td>0.544885</td>\n",
       "      <td>0.188829</td>\n",
       "      <td>0.189867</td>\n",
       "      <td>0.615077</td>\n",
       "      <td>-0.245800</td>\n",
       "      <td>-0.633531</td>\n",
       "      <td>-0.680635</td>\n",
       "      <td>0.751265</td>\n",
       "      <td>0.673363</td>\n",
       "      <td>0.244356</td>\n",
       "      <td>-0.244356</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>height</td>\n",
       "      <td>-0.550160</td>\n",
       "      <td>-0.373737</td>\n",
       "      <td>0.590742</td>\n",
       "      <td>0.492063</td>\n",
       "      <td>0.306002</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.307581</td>\n",
       "      <td>0.074694</td>\n",
       "      <td>0.180449</td>\n",
       "      <td>-0.062704</td>\n",
       "      <td>0.259737</td>\n",
       "      <td>-0.087027</td>\n",
       "      <td>-0.309974</td>\n",
       "      <td>-0.049800</td>\n",
       "      <td>-0.104812</td>\n",
       "      <td>0.135486</td>\n",
       "      <td>0.003811</td>\n",
       "      <td>0.281578</td>\n",
       "      <td>-0.281578</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>curb-weight</td>\n",
       "      <td>-0.233118</td>\n",
       "      <td>0.099404</td>\n",
       "      <td>0.782097</td>\n",
       "      <td>0.880665</td>\n",
       "      <td>0.866201</td>\n",
       "      <td>0.307581</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.849072</td>\n",
       "      <td>0.644060</td>\n",
       "      <td>0.167562</td>\n",
       "      <td>0.156433</td>\n",
       "      <td>0.757976</td>\n",
       "      <td>-0.279361</td>\n",
       "      <td>-0.749543</td>\n",
       "      <td>-0.794889</td>\n",
       "      <td>0.834415</td>\n",
       "      <td>0.785353</td>\n",
       "      <td>0.221046</td>\n",
       "      <td>-0.221046</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>engine-size</td>\n",
       "      <td>-0.110581</td>\n",
       "      <td>0.112360</td>\n",
       "      <td>0.572027</td>\n",
       "      <td>0.685025</td>\n",
       "      <td>0.729436</td>\n",
       "      <td>0.074694</td>\n",
       "      <td>0.849072</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.572609</td>\n",
       "      <td>0.209523</td>\n",
       "      <td>0.028889</td>\n",
       "      <td>0.822676</td>\n",
       "      <td>-0.256733</td>\n",
       "      <td>-0.650546</td>\n",
       "      <td>-0.679571</td>\n",
       "      <td>0.872335</td>\n",
       "      <td>0.745059</td>\n",
       "      <td>0.070779</td>\n",
       "      <td>-0.070779</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>bore</td>\n",
       "      <td>-0.140019</td>\n",
       "      <td>-0.029862</td>\n",
       "      <td>0.493244</td>\n",
       "      <td>0.608971</td>\n",
       "      <td>0.544885</td>\n",
       "      <td>0.180449</td>\n",
       "      <td>0.644060</td>\n",
       "      <td>0.572609</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>-0.055390</td>\n",
       "      <td>0.001263</td>\n",
       "      <td>0.566936</td>\n",
       "      <td>-0.267392</td>\n",
       "      <td>-0.582027</td>\n",
       "      <td>-0.591309</td>\n",
       "      <td>0.543155</td>\n",
       "      <td>0.554610</td>\n",
       "      <td>0.054458</td>\n",
       "      <td>-0.054458</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>stroke</td>\n",
       "      <td>-0.008245</td>\n",
       "      <td>0.055563</td>\n",
       "      <td>0.158502</td>\n",
       "      <td>0.124139</td>\n",
       "      <td>0.188829</td>\n",
       "      <td>-0.062704</td>\n",
       "      <td>0.167562</td>\n",
       "      <td>0.209523</td>\n",
       "      <td>-0.055390</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.187923</td>\n",
       "      <td>0.098462</td>\n",
       "      <td>-0.065713</td>\n",
       "      <td>-0.034696</td>\n",
       "      <td>-0.035201</td>\n",
       "      <td>0.082310</td>\n",
       "      <td>0.037300</td>\n",
       "      <td>0.241303</td>\n",
       "      <td>-0.241303</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>compression-ratio</td>\n",
       "      <td>-0.182196</td>\n",
       "      <td>-0.114713</td>\n",
       "      <td>0.250313</td>\n",
       "      <td>0.159733</td>\n",
       "      <td>0.189867</td>\n",
       "      <td>0.259737</td>\n",
       "      <td>0.156433</td>\n",
       "      <td>0.028889</td>\n",
       "      <td>0.001263</td>\n",
       "      <td>0.187923</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>-0.214514</td>\n",
       "      <td>-0.435780</td>\n",
       "      <td>0.331425</td>\n",
       "      <td>0.268465</td>\n",
       "      <td>0.071107</td>\n",
       "      <td>-0.299372</td>\n",
       "      <td>0.985231</td>\n",
       "      <td>-0.985231</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>horsepower</td>\n",
       "      <td>0.075819</td>\n",
       "      <td>0.217299</td>\n",
       "      <td>0.371147</td>\n",
       "      <td>0.579821</td>\n",
       "      <td>0.615077</td>\n",
       "      <td>-0.087027</td>\n",
       "      <td>0.757976</td>\n",
       "      <td>0.822676</td>\n",
       "      <td>0.566936</td>\n",
       "      <td>0.098462</td>\n",
       "      <td>-0.214514</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.107885</td>\n",
       "      <td>-0.822214</td>\n",
       "      <td>-0.804575</td>\n",
       "      <td>0.809575</td>\n",
       "      <td>0.889488</td>\n",
       "      <td>-0.169053</td>\n",
       "      <td>0.169053</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>peak-rpm</td>\n",
       "      <td>0.279740</td>\n",
       "      <td>0.239543</td>\n",
       "      <td>-0.360305</td>\n",
       "      <td>-0.285970</td>\n",
       "      <td>-0.245800</td>\n",
       "      <td>-0.309974</td>\n",
       "      <td>-0.279361</td>\n",
       "      <td>-0.256733</td>\n",
       "      <td>-0.267392</td>\n",
       "      <td>-0.065713</td>\n",
       "      <td>-0.435780</td>\n",
       "      <td>0.107885</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>-0.115413</td>\n",
       "      <td>-0.058598</td>\n",
       "      <td>-0.101616</td>\n",
       "      <td>0.115830</td>\n",
       "      <td>-0.475812</td>\n",
       "      <td>0.475812</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>city-mpg</td>\n",
       "      <td>-0.035527</td>\n",
       "      <td>-0.225016</td>\n",
       "      <td>-0.470606</td>\n",
       "      <td>-0.665192</td>\n",
       "      <td>-0.633531</td>\n",
       "      <td>-0.049800</td>\n",
       "      <td>-0.749543</td>\n",
       "      <td>-0.650546</td>\n",
       "      <td>-0.582027</td>\n",
       "      <td>-0.034696</td>\n",
       "      <td>0.331425</td>\n",
       "      <td>-0.822214</td>\n",
       "      <td>-0.115413</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.972044</td>\n",
       "      <td>-0.686571</td>\n",
       "      <td>-0.949713</td>\n",
       "      <td>0.265676</td>\n",
       "      <td>-0.265676</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>highway-mpg</td>\n",
       "      <td>0.036233</td>\n",
       "      <td>-0.181877</td>\n",
       "      <td>-0.543304</td>\n",
       "      <td>-0.698142</td>\n",
       "      <td>-0.680635</td>\n",
       "      <td>-0.104812</td>\n",
       "      <td>-0.794889</td>\n",
       "      <td>-0.679571</td>\n",
       "      <td>-0.591309</td>\n",
       "      <td>-0.035201</td>\n",
       "      <td>0.268465</td>\n",
       "      <td>-0.804575</td>\n",
       "      <td>-0.058598</td>\n",
       "      <td>0.972044</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>-0.704692</td>\n",
       "      <td>-0.930028</td>\n",
       "      <td>0.198690</td>\n",
       "      <td>-0.198690</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>price</td>\n",
       "      <td>-0.082391</td>\n",
       "      <td>0.133999</td>\n",
       "      <td>0.584642</td>\n",
       "      <td>0.690628</td>\n",
       "      <td>0.751265</td>\n",
       "      <td>0.135486</td>\n",
       "      <td>0.834415</td>\n",
       "      <td>0.872335</td>\n",
       "      <td>0.543155</td>\n",
       "      <td>0.082310</td>\n",
       "      <td>0.071107</td>\n",
       "      <td>0.809575</td>\n",
       "      <td>-0.101616</td>\n",
       "      <td>-0.686571</td>\n",
       "      <td>-0.704692</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.789898</td>\n",
       "      <td>0.110326</td>\n",
       "      <td>-0.110326</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>city-L/100km</td>\n",
       "      <td>0.066171</td>\n",
       "      <td>0.238567</td>\n",
       "      <td>0.476153</td>\n",
       "      <td>0.657373</td>\n",
       "      <td>0.673363</td>\n",
       "      <td>0.003811</td>\n",
       "      <td>0.785353</td>\n",
       "      <td>0.745059</td>\n",
       "      <td>0.554610</td>\n",
       "      <td>0.037300</td>\n",
       "      <td>-0.299372</td>\n",
       "      <td>0.889488</td>\n",
       "      <td>0.115830</td>\n",
       "      <td>-0.949713</td>\n",
       "      <td>-0.930028</td>\n",
       "      <td>0.789898</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>-0.241282</td>\n",
       "      <td>0.241282</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>diesel</td>\n",
       "      <td>-0.196735</td>\n",
       "      <td>-0.101546</td>\n",
       "      <td>0.307237</td>\n",
       "      <td>0.211187</td>\n",
       "      <td>0.244356</td>\n",
       "      <td>0.281578</td>\n",
       "      <td>0.221046</td>\n",
       "      <td>0.070779</td>\n",
       "      <td>0.054458</td>\n",
       "      <td>0.241303</td>\n",
       "      <td>0.985231</td>\n",
       "      <td>-0.169053</td>\n",
       "      <td>-0.475812</td>\n",
       "      <td>0.265676</td>\n",
       "      <td>0.198690</td>\n",
       "      <td>0.110326</td>\n",
       "      <td>-0.241282</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>-1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>gas</td>\n",
       "      <td>0.196735</td>\n",
       "      <td>0.101546</td>\n",
       "      <td>-0.307237</td>\n",
       "      <td>-0.211187</td>\n",
       "      <td>-0.244356</td>\n",
       "      <td>-0.281578</td>\n",
       "      <td>-0.221046</td>\n",
       "      <td>-0.070779</td>\n",
       "      <td>-0.054458</td>\n",
       "      <td>-0.241303</td>\n",
       "      <td>-0.985231</td>\n",
       "      <td>0.169053</td>\n",
       "      <td>0.475812</td>\n",
       "      <td>-0.265676</td>\n",
       "      <td>-0.198690</td>\n",
       "      <td>-0.110326</td>\n",
       "      <td>0.241282</td>\n",
       "      <td>-1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                   symboling  normalized-losses  wheel-base    length  \\\n",
       "symboling           1.000000           0.466264   -0.535987 -0.365404   \n",
       "normalized-losses   0.466264           1.000000   -0.056661  0.019424   \n",
       "wheel-base         -0.535987          -0.056661    1.000000  0.876024   \n",
       "length             -0.365404           0.019424    0.876024  1.000000   \n",
       "width              -0.242423           0.086802    0.814507  0.857170   \n",
       "height             -0.550160          -0.373737    0.590742  0.492063   \n",
       "curb-weight        -0.233118           0.099404    0.782097  0.880665   \n",
       "engine-size        -0.110581           0.112360    0.572027  0.685025   \n",
       "bore               -0.140019          -0.029862    0.493244  0.608971   \n",
       "stroke             -0.008245           0.055563    0.158502  0.124139   \n",
       "compression-ratio  -0.182196          -0.114713    0.250313  0.159733   \n",
       "horsepower          0.075819           0.217299    0.371147  0.579821   \n",
       "peak-rpm            0.279740           0.239543   -0.360305 -0.285970   \n",
       "city-mpg           -0.035527          -0.225016   -0.470606 -0.665192   \n",
       "highway-mpg         0.036233          -0.181877   -0.543304 -0.698142   \n",
       "price              -0.082391           0.133999    0.584642  0.690628   \n",
       "city-L/100km        0.066171           0.238567    0.476153  0.657373   \n",
       "diesel             -0.196735          -0.101546    0.307237  0.211187   \n",
       "gas                 0.196735           0.101546   -0.307237 -0.211187   \n",
       "\n",
       "                      width    height  curb-weight  engine-size      bore  \\\n",
       "symboling         -0.242423 -0.550160    -0.233118    -0.110581 -0.140019   \n",
       "normalized-losses  0.086802 -0.373737     0.099404     0.112360 -0.029862   \n",
       "wheel-base         0.814507  0.590742     0.782097     0.572027  0.493244   \n",
       "length             0.857170  0.492063     0.880665     0.685025  0.608971   \n",
       "width              1.000000  0.306002     0.866201     0.729436  0.544885   \n",
       "height             0.306002  1.000000     0.307581     0.074694  0.180449   \n",
       "curb-weight        0.866201  0.307581     1.000000     0.849072  0.644060   \n",
       "engine-size        0.729436  0.074694     0.849072     1.000000  0.572609   \n",
       "bore               0.544885  0.180449     0.644060     0.572609  1.000000   \n",
       "stroke             0.188829 -0.062704     0.167562     0.209523 -0.055390   \n",
       "compression-ratio  0.189867  0.259737     0.156433     0.028889  0.001263   \n",
       "horsepower         0.615077 -0.087027     0.757976     0.822676  0.566936   \n",
       "peak-rpm          -0.245800 -0.309974    -0.279361    -0.256733 -0.267392   \n",
       "city-mpg          -0.633531 -0.049800    -0.749543    -0.650546 -0.582027   \n",
       "highway-mpg       -0.680635 -0.104812    -0.794889    -0.679571 -0.591309   \n",
       "price              0.751265  0.135486     0.834415     0.872335  0.543155   \n",
       "city-L/100km       0.673363  0.003811     0.785353     0.745059  0.554610   \n",
       "diesel             0.244356  0.281578     0.221046     0.070779  0.054458   \n",
       "gas               -0.244356 -0.281578    -0.221046    -0.070779 -0.054458   \n",
       "\n",
       "                     stroke  compression-ratio  horsepower  peak-rpm  \\\n",
       "symboling         -0.008245          -0.182196    0.075819  0.279740   \n",
       "normalized-losses  0.055563          -0.114713    0.217299  0.239543   \n",
       "wheel-base         0.158502           0.250313    0.371147 -0.360305   \n",
       "length             0.124139           0.159733    0.579821 -0.285970   \n",
       "width              0.188829           0.189867    0.615077 -0.245800   \n",
       "height            -0.062704           0.259737   -0.087027 -0.309974   \n",
       "curb-weight        0.167562           0.156433    0.757976 -0.279361   \n",
       "engine-size        0.209523           0.028889    0.822676 -0.256733   \n",
       "bore              -0.055390           0.001263    0.566936 -0.267392   \n",
       "stroke             1.000000           0.187923    0.098462 -0.065713   \n",
       "compression-ratio  0.187923           1.000000   -0.214514 -0.435780   \n",
       "horsepower         0.098462          -0.214514    1.000000  0.107885   \n",
       "peak-rpm          -0.065713          -0.435780    0.107885  1.000000   \n",
       "city-mpg          -0.034696           0.331425   -0.822214 -0.115413   \n",
       "highway-mpg       -0.035201           0.268465   -0.804575 -0.058598   \n",
       "price              0.082310           0.071107    0.809575 -0.101616   \n",
       "city-L/100km       0.037300          -0.299372    0.889488  0.115830   \n",
       "diesel             0.241303           0.985231   -0.169053 -0.475812   \n",
       "gas               -0.241303          -0.985231    0.169053  0.475812   \n",
       "\n",
       "                   city-mpg  highway-mpg     price  city-L/100km    diesel  \\\n",
       "symboling         -0.035527     0.036233 -0.082391      0.066171 -0.196735   \n",
       "normalized-losses -0.225016    -0.181877  0.133999      0.238567 -0.101546   \n",
       "wheel-base        -0.470606    -0.543304  0.584642      0.476153  0.307237   \n",
       "length            -0.665192    -0.698142  0.690628      0.657373  0.211187   \n",
       "width             -0.633531    -0.680635  0.751265      0.673363  0.244356   \n",
       "height            -0.049800    -0.104812  0.135486      0.003811  0.281578   \n",
       "curb-weight       -0.749543    -0.794889  0.834415      0.785353  0.221046   \n",
       "engine-size       -0.650546    -0.679571  0.872335      0.745059  0.070779   \n",
       "bore              -0.582027    -0.591309  0.543155      0.554610  0.054458   \n",
       "stroke            -0.034696    -0.035201  0.082310      0.037300  0.241303   \n",
       "compression-ratio  0.331425     0.268465  0.071107     -0.299372  0.985231   \n",
       "horsepower        -0.822214    -0.804575  0.809575      0.889488 -0.169053   \n",
       "peak-rpm          -0.115413    -0.058598 -0.101616      0.115830 -0.475812   \n",
       "city-mpg           1.000000     0.972044 -0.686571     -0.949713  0.265676   \n",
       "highway-mpg        0.972044     1.000000 -0.704692     -0.930028  0.198690   \n",
       "price             -0.686571    -0.704692  1.000000      0.789898  0.110326   \n",
       "city-L/100km      -0.949713    -0.930028  0.789898      1.000000 -0.241282   \n",
       "diesel             0.265676     0.198690  0.110326     -0.241282  1.000000   \n",
       "gas               -0.265676    -0.198690 -0.110326      0.241282 -1.000000   \n",
       "\n",
       "                        gas  \n",
       "symboling          0.196735  \n",
       "normalized-losses  0.101546  \n",
       "wheel-base        -0.307237  \n",
       "length            -0.211187  \n",
       "width             -0.244356  \n",
       "height            -0.281578  \n",
       "curb-weight       -0.221046  \n",
       "engine-size       -0.070779  \n",
       "bore              -0.054458  \n",
       "stroke            -0.241303  \n",
       "compression-ratio -0.985231  \n",
       "horsepower         0.169053  \n",
       "peak-rpm           0.475812  \n",
       "city-mpg          -0.265676  \n",
       "highway-mpg       -0.198690  \n",
       "price             -0.110326  \n",
       "city-L/100km       0.241282  \n",
       "diesel            -1.000000  \n",
       "gas                1.000000  "
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.corr()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The diagonal elements are always one; we will study correlation more precisely Pearson correlation in-depth at the end of the notebook."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
    "<h1> Question  #2: </h1>\n",
    "\n",
    "<p>Find the correlation between the following columns: bore, stroke,compression-ratio , and horsepower.</p>\n",
    "<p>Hint: if you would like to select those columns  use the following syntax: df[['bore','stroke' ,'compression-ratio','horsepower']]</p>\n",
    "</div>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>bore</th>\n",
       "      <th>stroke</th>\n",
       "      <th>compression-ratio</th>\n",
       "      <th>horsepower</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>bore</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>-0.055390</td>\n",
       "      <td>0.001263</td>\n",
       "      <td>0.566936</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>stroke</td>\n",
       "      <td>-0.055390</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.187923</td>\n",
       "      <td>0.098462</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>compression-ratio</td>\n",
       "      <td>0.001263</td>\n",
       "      <td>0.187923</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>-0.214514</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>horsepower</td>\n",
       "      <td>0.566936</td>\n",
       "      <td>0.098462</td>\n",
       "      <td>-0.214514</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                       bore    stroke  compression-ratio  horsepower\n",
       "bore               1.000000 -0.055390           0.001263    0.566936\n",
       "stroke            -0.055390  1.000000           0.187923    0.098462\n",
       "compression-ratio  0.001263  0.187923           1.000000   -0.214514\n",
       "horsepower         0.566936  0.098462          -0.214514    1.000000"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Write your code below and press Shift+Enter to execute \n",
    "df[['bore', 'stroke', 'compression-ratio', 'horsepower']].corr()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Double-click <b>here</b> for the solution.\n",
    "\n",
    "<!-- The answer is below:\n",
    "\n",
    "df[['bore', 'stroke', 'compression-ratio', 'horsepower']].corr()  \n",
    "\n",
    "-->"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h2>Continuous numerical variables:</h2> \n",
    "\n",
    "<p>Continuous numerical variables are variables that may contain any value within some range. Continuous numerical variables can have the type \"int64\" or \"float64\". A great way to visualize these variables is by using scatterplots with fitted lines.</p>\n",
    "\n",
    "<p>In order to start understanding the (linear) relationship between an individual variable and the price. We can do this by using \"regplot\", which plots the scatterplot plus the fitted regression line for the data.</p>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    " Let's see several examples of different linear relationships:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h4>Positive linear relationship</h4>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's find the scatterplot of \"engine-size\" and \"price\" "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": true,
    "jupyter": {
     "outputs_hidden": true
    },
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/scipy/stats/stats.py:1713: FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use `arr[tuple(seq)]` instead of `arr[seq]`. In the future this will be interpreted as an array index, `arr[np.array(seq)]`, which will result either in an error or a different result.\n",
      "  return np.add.reduce(sorted[indexer] * weights, axis=axis) / sumval\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "(0, 56345.25287530989)"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Engine size as potential predictor variable of price\n",
    "sns.regplot(x=\"engine-size\", y=\"price\", data=df)\n",
    "plt.ylim(0,)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7f04340c3278>"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.regplot(x=\"engine-size\", y=\"price\", data=df)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": true,
    "jupyter": {
     "outputs_hidden": true
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mSignature:\u001b[0m\n",
       "\u001b[0msns\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mregplot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\u001b[0m\n",
       "\u001b[0;34m\u001b[0m    \u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n",
       "\u001b[0;34m\u001b[0m    \u001b[0my\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n",
       "\u001b[0;34m\u001b[0m    \u001b[0mdata\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n",
       "\u001b[0;34m\u001b[0m    \u001b[0mx_estimator\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n",
       "\u001b[0;34m\u001b[0m    \u001b[0mx_bins\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n",
       "\u001b[0;34m\u001b[0m    \u001b[0mx_ci\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'ci'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n",
       "\u001b[0;34m\u001b[0m    \u001b[0mscatter\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n",
       "\u001b[0;34m\u001b[0m    \u001b[0mfit_reg\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n",
       "\u001b[0;34m\u001b[0m    \u001b[0mci\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m95\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n",
       "\u001b[0;34m\u001b[0m    \u001b[0mn_boot\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m1000\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n",
       "\u001b[0;34m\u001b[0m    \u001b[0munits\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n",
       "\u001b[0;34m\u001b[0m    \u001b[0morder\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n",
       "\u001b[0;34m\u001b[0m    \u001b[0mlogistic\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n",
       "\u001b[0;34m\u001b[0m    \u001b[0mlowess\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n",
       "\u001b[0;34m\u001b[0m    \u001b[0mrobust\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n",
       "\u001b[0;34m\u001b[0m    \u001b[0mlogx\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n",
       "\u001b[0;34m\u001b[0m    \u001b[0mx_partial\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n",
       "\u001b[0;34m\u001b[0m    \u001b[0my_partial\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n",
       "\u001b[0;34m\u001b[0m    \u001b[0mtruncate\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n",
       "\u001b[0;34m\u001b[0m    \u001b[0mdropna\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n",
       "\u001b[0;34m\u001b[0m    \u001b[0mx_jitter\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n",
       "\u001b[0;34m\u001b[0m    \u001b[0my_jitter\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n",
       "\u001b[0;34m\u001b[0m    \u001b[0mlabel\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n",
       "\u001b[0;34m\u001b[0m    \u001b[0mcolor\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n",
       "\u001b[0;34m\u001b[0m    \u001b[0mmarker\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'o'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n",
       "\u001b[0;34m\u001b[0m    \u001b[0mscatter_kws\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n",
       "\u001b[0;34m\u001b[0m    \u001b[0mline_kws\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n",
       "\u001b[0;34m\u001b[0m    \u001b[0max\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n",
       "\u001b[0;34m\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
       "\u001b[0;31mDocstring:\u001b[0m\n",
       "Plot data and a linear regression model fit.\n",
       "\n",
       "There are a number of mutually exclusive options for estimating the\n",
       "regression model. See the :ref:`tutorial <regression_tutorial>` for more\n",
       "information.    \n",
       "\n",
       "Parameters\n",
       "----------\n",
       "x, y: string, series, or vector array\n",
       "    Input variables. If strings, these should correspond with column names\n",
       "    in ``data``. When pandas objects are used, axes will be labeled with\n",
       "    the series name.\n",
       "data : DataFrame\n",
       "    Tidy (\"long-form\") dataframe where each column is a variable and each\n",
       "    row is an observation.    \n",
       "x_estimator : callable that maps vector -> scalar, optional\n",
       "    Apply this function to each unique value of ``x`` and plot the\n",
       "    resulting estimate. This is useful when ``x`` is a discrete variable.\n",
       "    If ``x_ci`` is given, this estimate will be bootstrapped and a\n",
       "    confidence interval will be drawn.    \n",
       "x_bins : int or vector, optional\n",
       "    Bin the ``x`` variable into discrete bins and then estimate the central\n",
       "    tendency and a confidence interval. This binning only influences how\n",
       "    the scatterplot is drawn; the regression is still fit to the original\n",
       "    data.  This parameter is interpreted either as the number of\n",
       "    evenly-sized (not necessary spaced) bins or the positions of the bin\n",
       "    centers. When this parameter is used, it implies that the default of\n",
       "    ``x_estimator`` is ``numpy.mean``.    \n",
       "x_ci : \"ci\", \"sd\", int in [0, 100] or None, optional\n",
       "    Size of the confidence interval used when plotting a central tendency\n",
       "    for discrete values of ``x``. If ``\"ci\"``, defer to the value of the\n",
       "    ``ci`` parameter. If ``\"sd\"``, skip bootstrapping and show the\n",
       "    standard deviation of the observations in each bin.    \n",
       "scatter : bool, optional\n",
       "    If ``True``, draw a scatterplot with the underlying observations (or\n",
       "    the ``x_estimator`` values).    \n",
       "fit_reg : bool, optional\n",
       "    If ``True``, estimate and plot a regression model relating the ``x``\n",
       "    and ``y`` variables.    \n",
       "ci : int in [0, 100] or None, optional\n",
       "    Size of the confidence interval for the regression estimate. This will\n",
       "    be drawn using translucent bands around the regression line. The\n",
       "    confidence interval is estimated using a bootstrap; for large\n",
       "    datasets, it may be advisable to avoid that computation by setting\n",
       "    this parameter to None.    \n",
       "n_boot : int, optional\n",
       "    Number of bootstrap resamples used to estimate the ``ci``. The default\n",
       "    value attempts to balance time and stability; you may want to increase\n",
       "    this value for \"final\" versions of plots.    \n",
       "units : variable name in ``data``, optional\n",
       "    If the ``x`` and ``y`` observations are nested within sampling units,\n",
       "    those can be specified here. This will be taken into account when\n",
       "    computing the confidence intervals by performing a multilevel bootstrap\n",
       "    that resamples both units and observations (within unit). This does not\n",
       "    otherwise influence how the regression is estimated or drawn.    \n",
       "order : int, optional\n",
       "    If ``order`` is greater than 1, use ``numpy.polyfit`` to estimate a\n",
       "    polynomial regression.    \n",
       "logistic : bool, optional\n",
       "    If ``True``, assume that ``y`` is a binary variable and use\n",
       "    ``statsmodels`` to estimate a logistic regression model. Note that this\n",
       "    is substantially more computationally intensive than linear regression,\n",
       "    so you may wish to decrease the number of bootstrap resamples\n",
       "    (``n_boot``) or set ``ci`` to None.    \n",
       "lowess : bool, optional\n",
       "    If ``True``, use ``statsmodels`` to estimate a nonparametric lowess\n",
       "    model (locally weighted linear regression). Note that confidence\n",
       "    intervals cannot currently be drawn for this kind of model.    \n",
       "robust : bool, optional\n",
       "    If ``True``, use ``statsmodels`` to estimate a robust regression. This\n",
       "    will de-weight outliers. Note that this is substantially more\n",
       "    computationally intensive than standard linear regression, so you may\n",
       "    wish to decrease the number of bootstrap resamples (``n_boot``) or set\n",
       "    ``ci`` to None.    \n",
       "logx : bool, optional\n",
       "    If ``True``, estimate a linear regression of the form y ~ log(x), but\n",
       "    plot the scatterplot and regression model in the input space. Note that\n",
       "    ``x`` must be positive for this to work.    \n",
       "{x,y}_partial : strings in ``data`` or matrices\n",
       "    Confounding variables to regress out of the ``x`` or ``y`` variables\n",
       "    before plotting.    \n",
       "truncate : bool, optional\n",
       "    By default, the regression line is drawn to fill the x axis limits\n",
       "    after the scatterplot is drawn. If ``truncate`` is ``True``, it will\n",
       "    instead by bounded by the data limits.    \n",
       "{x,y}_jitter : floats, optional\n",
       "    Add uniform random noise of this size to either the ``x`` or ``y``\n",
       "    variables. The noise is added to a copy of the data after fitting the\n",
       "    regression, and only influences the look of the scatterplot. This can\n",
       "    be helpful when plotting variables that take discrete values.    \n",
       "label : string\n",
       "    Label to apply to ether the scatterplot or regression line (if\n",
       "    ``scatter`` is ``False``) for use in a legend.\n",
       "color : matplotlib color\n",
       "    Color to apply to all plot elements; will be superseded by colors\n",
       "    passed in ``scatter_kws`` or ``line_kws``.\n",
       "marker : matplotlib marker code\n",
       "    Marker to use for the scatterplot glyphs.\n",
       "{scatter,line}_kws : dictionaries\n",
       "    Additional keyword arguments to pass to ``plt.scatter`` and\n",
       "    ``plt.plot``.    \n",
       "ax : matplotlib Axes, optional\n",
       "    Axes object to draw the plot onto, otherwise uses the current Axes.\n",
       "\n",
       "Returns\n",
       "-------\n",
       "ax : matplotlib Axes\n",
       "    The Axes object containing the plot.\n",
       "\n",
       "See Also\n",
       "--------\n",
       "lmplot : Combine :func:`regplot` and :class:`FacetGrid` to plot multiple\n",
       "         linear relationships in a dataset.\n",
       "jointplot : Combine :func:`regplot` and :class:`JointGrid` (when used with\n",
       "            ``kind=\"reg\"``).\n",
       "pairplot : Combine :func:`regplot` and :class:`PairGrid` (when used with\n",
       "           ``kind=\"reg\"``).\n",
       "residplot : Plot the residuals of a linear regression model.\n",
       "\n",
       "Notes\n",
       "-----\n",
       "\n",
       "The :func:`regplot` and :func:`lmplot` functions are closely related, but\n",
       "the former is an axes-level function while the latter is a figure-level\n",
       "function that combines :func:`regplot` and :class:`FacetGrid`.    \n",
       "\n",
       "\n",
       "It's also easy to combine combine :func:`regplot` and :class:`JointGrid` or\n",
       ":class:`PairGrid` through the :func:`jointplot` and :func:`pairplot`\n",
       "functions, although these do not directly accept all of :func:`regplot`'s\n",
       "parameters.\n",
       "\n",
       "Examples\n",
       "--------\n",
       "\n",
       "Plot the relationship between two variables in a DataFrame:\n",
       "\n",
       ".. plot::\n",
       "    :context: close-figs\n",
       "\n",
       "    >>> import seaborn as sns; sns.set(color_codes=True)\n",
       "    >>> tips = sns.load_dataset(\"tips\")\n",
       "    >>> ax = sns.regplot(x=\"total_bill\", y=\"tip\", data=tips)\n",
       "\n",
       "Plot with two variables defined as numpy arrays; use a different color:\n",
       "\n",
       ".. plot::\n",
       "    :context: close-figs\n",
       "\n",
       "    >>> import numpy as np; np.random.seed(8)\n",
       "    >>> mean, cov = [4, 6], [(1.5, .7), (.7, 1)]\n",
       "    >>> x, y = np.random.multivariate_normal(mean, cov, 80).T\n",
       "    >>> ax = sns.regplot(x=x, y=y, color=\"g\")\n",
       "\n",
       "Plot with two variables defined as pandas Series; use a different marker:\n",
       "\n",
       ".. plot::\n",
       "    :context: close-figs\n",
       "\n",
       "    >>> import pandas as pd\n",
       "    >>> x, y = pd.Series(x, name=\"x_var\"), pd.Series(y, name=\"y_var\")\n",
       "    >>> ax = sns.regplot(x=x, y=y, marker=\"+\")\n",
       "\n",
       "Use a 68% confidence interval, which corresponds with the standard error\n",
       "of the estimate:\n",
       "\n",
       ".. plot::\n",
       "    :context: close-figs\n",
       "\n",
       "    >>> ax = sns.regplot(x=x, y=y, ci=68)\n",
       "\n",
       "Plot with a discrete ``x`` variable and add some jitter:\n",
       "\n",
       ".. plot::\n",
       "    :context: close-figs\n",
       "\n",
       "    >>> ax = sns.regplot(x=\"size\", y=\"total_bill\", data=tips, x_jitter=.1)\n",
       "\n",
       "Plot with a discrete ``x`` variable showing means and confidence intervals\n",
       "for unique values:\n",
       "\n",
       ".. plot::\n",
       "    :context: close-figs\n",
       "\n",
       "    >>> ax = sns.regplot(x=\"size\", y=\"total_bill\", data=tips,\n",
       "    ...                  x_estimator=np.mean)\n",
       "\n",
       "Plot with a continuous variable divided into discrete bins:\n",
       "\n",
       ".. plot::\n",
       "    :context: close-figs\n",
       "\n",
       "    >>> ax = sns.regplot(x=x, y=y, x_bins=4)\n",
       "\n",
       "Fit a higher-order polynomial regression and truncate the model prediction:\n",
       "\n",
       ".. plot::\n",
       "    :context: close-figs\n",
       "\n",
       "    >>> ans = sns.load_dataset(\"anscombe\")\n",
       "    >>> ax = sns.regplot(x=\"x\", y=\"y\", data=ans.loc[ans.dataset == \"II\"],\n",
       "    ...                  scatter_kws={\"s\": 80},\n",
       "    ...                  order=2, ci=None, truncate=True)\n",
       "\n",
       "Fit a robust regression and don't plot a confidence interval:\n",
       "\n",
       ".. plot::\n",
       "    :context: close-figs\n",
       "\n",
       "    >>> ax = sns.regplot(x=\"x\", y=\"y\", data=ans.loc[ans.dataset == \"III\"],\n",
       "    ...                  scatter_kws={\"s\": 80},\n",
       "    ...                  robust=True, ci=None)\n",
       "\n",
       "Fit a logistic regression; jitter the y variable and use fewer bootstrap\n",
       "iterations:\n",
       "\n",
       ".. plot::\n",
       "    :context: close-figs\n",
       "\n",
       "    >>> tips[\"big_tip\"] = (tips.tip / tips.total_bill) > .175\n",
       "    >>> ax = sns.regplot(x=\"total_bill\", y=\"big_tip\", data=tips,\n",
       "    ...                  logistic=True, n_boot=500, y_jitter=.03)\n",
       "\n",
       "Fit the regression model using log(x) and truncate the model prediction:\n",
       "\n",
       ".. plot::\n",
       "    :context: close-figs\n",
       "\n",
       "    >>> ax = sns.regplot(x=\"size\", y=\"total_bill\", data=tips,\n",
       "    ...                  x_estimator=np.mean, logx=True, truncate=True)\n",
       "\u001b[0;31mFile:\u001b[0m      ~/conda/envs/python/lib/python3.6/site-packages/seaborn/regression.py\n",
       "\u001b[0;31mType:\u001b[0m      function\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.regplot?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": true,
    "jupyter": {
     "outputs_hidden": true
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mSignature:\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mylim\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
       "\u001b[0;31mDocstring:\u001b[0m\n",
       "Get or set the y-limits of the current axes.\n",
       "\n",
       "Call signatures::\n",
       "\n",
       "    bottom, top = ylim()  # return the current ylim\n",
       "    ylim((bottom, top))   # set the ylim to bottom, top\n",
       "    ylim(bottom, top)     # set the ylim to bottom, top\n",
       "\n",
       "If you do not specify args, you can alternatively pass *bottom* or\n",
       "*top* as kwargs, i.e.::\n",
       "\n",
       "    ylim(top=3)  # adjust the top leaving bottom unchanged\n",
       "    ylim(bottom=1)  # adjust the bottom leaving top unchanged\n",
       "\n",
       "Setting limits turns autoscaling off for the y-axis.\n",
       "\n",
       "Returns\n",
       "-------\n",
       "bottom, top\n",
       "    A tuple of the new y-axis limits.\n",
       "\n",
       "Notes\n",
       "-----\n",
       "Calling this function with no arguments (e.g. ``ylim()``) is the pyplot\n",
       "equivalent of calling `~.Axes.get_ylim` on the current axes.\n",
       "Calling this function with arguments is the pyplot equivalent of calling\n",
       "`~.Axes.set_ylim` on the current axes. All arguments are passed though.\n",
       "\u001b[0;31mFile:\u001b[0m      ~/conda/envs/python/lib/python3.6/site-packages/matplotlib/pyplot.py\n",
       "\u001b[0;31mType:\u001b[0m      function\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.ylim?"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<p>As the engine-size goes up, the price goes up: this indicates a positive direct correlation between these two variables. Engine size seems like a pretty good predictor of price since the regression line is almost a perfect diagonal line.</p>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    " We can examine the correlation between 'engine-size' and 'price' and see it's approximately  0.87"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>engine-size</th>\n",
       "      <th>price</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>engine-size</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.872335</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>price</td>\n",
       "      <td>0.872335</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             engine-size     price\n",
       "engine-size     1.000000  0.872335\n",
       "price           0.872335  1.000000"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df[[\"engine-size\", \"price\"]].corr()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Highway mpg is a potential predictor variable of price "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7f0434124550>"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.regplot(x=\"highway-mpg\", y=\"price\", data=df)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<p>As the highway-mpg goes up, the price goes down: this indicates an inverse/negative relationship between these two variables. Highway mpg could potentially be a predictor of price.</p>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can examine the correlation between 'highway-mpg' and 'price' and see it's approximately  -0.704"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>highway-mpg</th>\n",
       "      <th>price</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>highway-mpg</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>-0.704692</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>price</td>\n",
       "      <td>-0.704692</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             highway-mpg     price\n",
       "highway-mpg     1.000000 -0.704692\n",
       "price          -0.704692  1.000000"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df[['highway-mpg', 'price']].corr()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h3>Weak Linear Relationship</h3>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's see if \"Peak-rpm\" as a predictor variable of \"price\"."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7f0434022e10>"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.regplot(x=\"peak-rpm\", y=\"price\", data=df)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<p>Peak rpm does not seem like a good predictor of the price at all since the regression line is close to horizontal. Also, the data points are very scattered and far from the fitted line, showing lots of variability. Therefore it's it is not a reliable variable.</p>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can examine the correlation between 'peak-rpm' and 'price' and see it's approximately -0.101616 "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>peak-rpm</th>\n",
       "      <th>price</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>peak-rpm</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>-0.101616</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>price</td>\n",
       "      <td>-0.101616</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          peak-rpm     price\n",
       "peak-rpm  1.000000 -0.101616\n",
       "price    -0.101616  1.000000"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df[['peak-rpm','price']].corr()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    " <div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
    "<h1> Question  3 a): </h1>\n",
    "\n",
    "<p>Find the correlation  between x=\"stroke\", y=\"price\".</p>\n",
    "<p>Hint: if you would like to select those columns  use the following syntax: df[[\"stroke\",\"price\"]]  </p>\n",
    "</div>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>stroke</th>\n",
       "      <th>price</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>stroke</td>\n",
       "      <td>1.00000</td>\n",
       "      <td>0.08231</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>price</td>\n",
       "      <td>0.08231</td>\n",
       "      <td>1.00000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         stroke    price\n",
       "stroke  1.00000  0.08231\n",
       "price   0.08231  1.00000"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Write your code below and press Shift+Enter to execute\n",
    "df[[\"stroke\",\"price\"]].corr() "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Double-click <b>here</b> for the solution.\n",
    "\n",
    "<!-- The answer is below:\n",
    "\n",
    "#The correlation is 0.0823, the non-diagonal elements of the table.\n",
    "#code:\n",
    "df[[\"stroke\",\"price\"]].corr() \n",
    "\n",
    "-->"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
    "<h1>Question  3 b):</h1>\n",
    "\n",
    "<p>Given the correlation results between \"price\" and \"stroke\" do you expect a linear relationship?</p> \n",
    "<p>Verify your results using the function \"regplot()\".</p>\n",
    "</div>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7f042136cf98>"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Write your code below and press Shift+Enter to execute \n",
    "sns.regplot(x=\"stroke\", y=\"price\", data=df)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Double-click <b>here</b> for the solution.\n",
    "\n",
    "<!-- The answer is below:\n",
    "\n",
    "#There is a weak correlation between the variable 'stroke' and 'price.' as such regression will not work well.  We #can see this use \"regplot\" to demonstrate this.\n",
    "\n",
    "#Code: \n",
    "sns.regplot(x=\"stroke\", y=\"price\", data=df)\n",
    "\n",
    "-->"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h3>Categorical variables</h3>\n",
    "\n",
    "<p>These are variables that describe a 'characteristic' of a data unit, and are selected from a small group of categories. The categorical variables can have the type \"object\" or \"int64\". A good way to visualize categorical variables is by using boxplots.</p>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's look at the relationship between \"body-style\" and \"price\"."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    },
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7f0421369dd8>"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.boxplot(x=\"body-style\", y=\"price\", data=df)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<p>We see that the distributions of price between the different body-style categories have a significant overlap, and so body-style would not be a good predictor of price. Let's examine engine \"engine-location\" and \"price\":</p>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    },
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7f042122c7b8>"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.boxplot(x=\"engine-location\", y=\"price\", data=df)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<p>Here we see that the distribution of price between these two engine-location categories, front and rear, are distinct enough to take engine-location as a potential good predictor of price.</p>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    " Let's examine \"drive-wheels\" and \"price\"."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7f04212a76d8>"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# drive-wheels\n",
    "sns.boxplot(x=\"drive-wheels\", y=\"price\", data=df)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<p>Here we see that the distribution of price between the different drive-wheels categories differs; as such drive-wheels could potentially be a predictor of price.</p>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h2 id=\"discriptive_statistics\">3. Descriptive Statistical Analysis</h2>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<p>Let's first take a look at the variables by utilizing a description method.</p>\n",
    "\n",
    "<p>The <b>describe</b> function automatically computes basic statistics for all continuous variables. Any NaN values are automatically skipped in these statistics.</p>\n",
    "\n",
    "This will show:\n",
    "<ul>\n",
    "    <li>the count of that variable</li>\n",
    "    <li>the mean</li>\n",
    "    <li>the standard deviation (std)</li> \n",
    "    <li>the minimum value</li>\n",
    "    <li>the IQR (Interquartile Range: 25%, 50% and 75%)</li>\n",
    "    <li>the maximum value</li>\n",
    "<ul>\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    " We can apply the method \"describe\" as follows:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>symboling</th>\n",
       "      <th>normalized-losses</th>\n",
       "      <th>wheel-base</th>\n",
       "      <th>length</th>\n",
       "      <th>width</th>\n",
       "      <th>height</th>\n",
       "      <th>curb-weight</th>\n",
       "      <th>engine-size</th>\n",
       "      <th>bore</th>\n",
       "      <th>stroke</th>\n",
       "      <th>compression-ratio</th>\n",
       "      <th>horsepower</th>\n",
       "      <th>peak-rpm</th>\n",
       "      <th>city-mpg</th>\n",
       "      <th>highway-mpg</th>\n",
       "      <th>price</th>\n",
       "      <th>city-L/100km</th>\n",
       "      <th>diesel</th>\n",
       "      <th>gas</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>count</td>\n",
       "      <td>201.000000</td>\n",
       "      <td>201.00000</td>\n",
       "      <td>201.000000</td>\n",
       "      <td>201.000000</td>\n",
       "      <td>201.000000</td>\n",
       "      <td>201.000000</td>\n",
       "      <td>201.000000</td>\n",
       "      <td>201.000000</td>\n",
       "      <td>201.000000</td>\n",
       "      <td>197.000000</td>\n",
       "      <td>201.000000</td>\n",
       "      <td>201.000000</td>\n",
       "      <td>201.000000</td>\n",
       "      <td>201.000000</td>\n",
       "      <td>201.000000</td>\n",
       "      <td>201.000000</td>\n",
       "      <td>201.000000</td>\n",
       "      <td>201.000000</td>\n",
       "      <td>201.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>mean</td>\n",
       "      <td>0.840796</td>\n",
       "      <td>122.00000</td>\n",
       "      <td>98.797015</td>\n",
       "      <td>0.837102</td>\n",
       "      <td>0.915126</td>\n",
       "      <td>53.766667</td>\n",
       "      <td>2555.666667</td>\n",
       "      <td>126.875622</td>\n",
       "      <td>3.330692</td>\n",
       "      <td>3.256904</td>\n",
       "      <td>10.164279</td>\n",
       "      <td>103.405534</td>\n",
       "      <td>5117.665368</td>\n",
       "      <td>25.179104</td>\n",
       "      <td>30.686567</td>\n",
       "      <td>13207.129353</td>\n",
       "      <td>9.944145</td>\n",
       "      <td>0.099502</td>\n",
       "      <td>0.900498</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>std</td>\n",
       "      <td>1.254802</td>\n",
       "      <td>31.99625</td>\n",
       "      <td>6.066366</td>\n",
       "      <td>0.059213</td>\n",
       "      <td>0.029187</td>\n",
       "      <td>2.447822</td>\n",
       "      <td>517.296727</td>\n",
       "      <td>41.546834</td>\n",
       "      <td>0.268072</td>\n",
       "      <td>0.319256</td>\n",
       "      <td>4.004965</td>\n",
       "      <td>37.365700</td>\n",
       "      <td>478.113805</td>\n",
       "      <td>6.423220</td>\n",
       "      <td>6.815150</td>\n",
       "      <td>7947.066342</td>\n",
       "      <td>2.534599</td>\n",
       "      <td>0.300083</td>\n",
       "      <td>0.300083</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>min</td>\n",
       "      <td>-2.000000</td>\n",
       "      <td>65.00000</td>\n",
       "      <td>86.600000</td>\n",
       "      <td>0.678039</td>\n",
       "      <td>0.837500</td>\n",
       "      <td>47.800000</td>\n",
       "      <td>1488.000000</td>\n",
       "      <td>61.000000</td>\n",
       "      <td>2.540000</td>\n",
       "      <td>2.070000</td>\n",
       "      <td>7.000000</td>\n",
       "      <td>48.000000</td>\n",
       "      <td>4150.000000</td>\n",
       "      <td>13.000000</td>\n",
       "      <td>16.000000</td>\n",
       "      <td>5118.000000</td>\n",
       "      <td>4.795918</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>25%</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>101.00000</td>\n",
       "      <td>94.500000</td>\n",
       "      <td>0.801538</td>\n",
       "      <td>0.890278</td>\n",
       "      <td>52.000000</td>\n",
       "      <td>2169.000000</td>\n",
       "      <td>98.000000</td>\n",
       "      <td>3.150000</td>\n",
       "      <td>3.110000</td>\n",
       "      <td>8.600000</td>\n",
       "      <td>70.000000</td>\n",
       "      <td>4800.000000</td>\n",
       "      <td>19.000000</td>\n",
       "      <td>25.000000</td>\n",
       "      <td>7775.000000</td>\n",
       "      <td>7.833333</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>50%</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>122.00000</td>\n",
       "      <td>97.000000</td>\n",
       "      <td>0.832292</td>\n",
       "      <td>0.909722</td>\n",
       "      <td>54.100000</td>\n",
       "      <td>2414.000000</td>\n",
       "      <td>120.000000</td>\n",
       "      <td>3.310000</td>\n",
       "      <td>3.290000</td>\n",
       "      <td>9.000000</td>\n",
       "      <td>95.000000</td>\n",
       "      <td>5125.369458</td>\n",
       "      <td>24.000000</td>\n",
       "      <td>30.000000</td>\n",
       "      <td>10295.000000</td>\n",
       "      <td>9.791667</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>75%</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>137.00000</td>\n",
       "      <td>102.400000</td>\n",
       "      <td>0.881788</td>\n",
       "      <td>0.925000</td>\n",
       "      <td>55.500000</td>\n",
       "      <td>2926.000000</td>\n",
       "      <td>141.000000</td>\n",
       "      <td>3.580000</td>\n",
       "      <td>3.410000</td>\n",
       "      <td>9.400000</td>\n",
       "      <td>116.000000</td>\n",
       "      <td>5500.000000</td>\n",
       "      <td>30.000000</td>\n",
       "      <td>34.000000</td>\n",
       "      <td>16500.000000</td>\n",
       "      <td>12.368421</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>max</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>256.00000</td>\n",
       "      <td>120.900000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>59.800000</td>\n",
       "      <td>4066.000000</td>\n",
       "      <td>326.000000</td>\n",
       "      <td>3.940000</td>\n",
       "      <td>4.170000</td>\n",
       "      <td>23.000000</td>\n",
       "      <td>262.000000</td>\n",
       "      <td>6600.000000</td>\n",
       "      <td>49.000000</td>\n",
       "      <td>54.000000</td>\n",
       "      <td>45400.000000</td>\n",
       "      <td>18.076923</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        symboling  normalized-losses  wheel-base      length       width  \\\n",
       "count  201.000000          201.00000  201.000000  201.000000  201.000000   \n",
       "mean     0.840796          122.00000   98.797015    0.837102    0.915126   \n",
       "std      1.254802           31.99625    6.066366    0.059213    0.029187   \n",
       "min     -2.000000           65.00000   86.600000    0.678039    0.837500   \n",
       "25%      0.000000          101.00000   94.500000    0.801538    0.890278   \n",
       "50%      1.000000          122.00000   97.000000    0.832292    0.909722   \n",
       "75%      2.000000          137.00000  102.400000    0.881788    0.925000   \n",
       "max      3.000000          256.00000  120.900000    1.000000    1.000000   \n",
       "\n",
       "           height  curb-weight  engine-size        bore      stroke  \\\n",
       "count  201.000000   201.000000   201.000000  201.000000  197.000000   \n",
       "mean    53.766667  2555.666667   126.875622    3.330692    3.256904   \n",
       "std      2.447822   517.296727    41.546834    0.268072    0.319256   \n",
       "min     47.800000  1488.000000    61.000000    2.540000    2.070000   \n",
       "25%     52.000000  2169.000000    98.000000    3.150000    3.110000   \n",
       "50%     54.100000  2414.000000   120.000000    3.310000    3.290000   \n",
       "75%     55.500000  2926.000000   141.000000    3.580000    3.410000   \n",
       "max     59.800000  4066.000000   326.000000    3.940000    4.170000   \n",
       "\n",
       "       compression-ratio  horsepower     peak-rpm    city-mpg  highway-mpg  \\\n",
       "count         201.000000  201.000000   201.000000  201.000000   201.000000   \n",
       "mean           10.164279  103.405534  5117.665368   25.179104    30.686567   \n",
       "std             4.004965   37.365700   478.113805    6.423220     6.815150   \n",
       "min             7.000000   48.000000  4150.000000   13.000000    16.000000   \n",
       "25%             8.600000   70.000000  4800.000000   19.000000    25.000000   \n",
       "50%             9.000000   95.000000  5125.369458   24.000000    30.000000   \n",
       "75%             9.400000  116.000000  5500.000000   30.000000    34.000000   \n",
       "max            23.000000  262.000000  6600.000000   49.000000    54.000000   \n",
       "\n",
       "              price  city-L/100km      diesel         gas  \n",
       "count    201.000000    201.000000  201.000000  201.000000  \n",
       "mean   13207.129353      9.944145    0.099502    0.900498  \n",
       "std     7947.066342      2.534599    0.300083    0.300083  \n",
       "min     5118.000000      4.795918    0.000000    0.000000  \n",
       "25%     7775.000000      7.833333    0.000000    1.000000  \n",
       "50%    10295.000000      9.791667    0.000000    1.000000  \n",
       "75%    16500.000000     12.368421    0.000000    1.000000  \n",
       "max    45400.000000     18.076923    1.000000    1.000000  "
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.describe()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    " The default setting of \"describe\" skips variables of type object. We can apply the method \"describe\" on the variables of type 'object' as follows:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    },
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>make</th>\n",
       "      <th>aspiration</th>\n",
       "      <th>num-of-doors</th>\n",
       "      <th>body-style</th>\n",
       "      <th>drive-wheels</th>\n",
       "      <th>engine-location</th>\n",
       "      <th>engine-type</th>\n",
       "      <th>num-of-cylinders</th>\n",
       "      <th>fuel-system</th>\n",
       "      <th>horsepower-binned</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>count</td>\n",
       "      <td>201</td>\n",
       "      <td>201</td>\n",
       "      <td>201</td>\n",
       "      <td>201</td>\n",
       "      <td>201</td>\n",
       "      <td>201</td>\n",
       "      <td>201</td>\n",
       "      <td>201</td>\n",
       "      <td>201</td>\n",
       "      <td>200</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>unique</td>\n",
       "      <td>22</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>5</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "      <td>6</td>\n",
       "      <td>7</td>\n",
       "      <td>8</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>top</td>\n",
       "      <td>toyota</td>\n",
       "      <td>std</td>\n",
       "      <td>four</td>\n",
       "      <td>sedan</td>\n",
       "      <td>fwd</td>\n",
       "      <td>front</td>\n",
       "      <td>ohc</td>\n",
       "      <td>four</td>\n",
       "      <td>mpfi</td>\n",
       "      <td>Low</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>freq</td>\n",
       "      <td>32</td>\n",
       "      <td>165</td>\n",
       "      <td>115</td>\n",
       "      <td>94</td>\n",
       "      <td>118</td>\n",
       "      <td>198</td>\n",
       "      <td>145</td>\n",
       "      <td>157</td>\n",
       "      <td>92</td>\n",
       "      <td>115</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          make aspiration num-of-doors body-style drive-wheels  \\\n",
       "count      201        201          201        201          201   \n",
       "unique      22          2            2          5            3   \n",
       "top     toyota        std         four      sedan          fwd   \n",
       "freq        32        165          115         94          118   \n",
       "\n",
       "       engine-location engine-type num-of-cylinders fuel-system  \\\n",
       "count              201         201              201         201   \n",
       "unique               2           6                7           8   \n",
       "top              front         ohc             four        mpfi   \n",
       "freq               198         145              157          92   \n",
       "\n",
       "       horsepower-binned  \n",
       "count                200  \n",
       "unique                 3  \n",
       "top                  Low  \n",
       "freq                 115  "
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.describe(include=['object'])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h3>Value Counts</h3>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<p>Value-counts is a good way of understanding how many units of each characteristic/variable we have. We can apply the \"value_counts\" method on the column 'drive-wheels'. Don’t forget the method \"value_counts\" only works on Pandas series, not Pandas Dataframes. As a result, we only include one bracket \"df['drive-wheels']\" not two brackets \"df[['drive-wheels']]\".</p>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "fwd    118\n",
       "rwd     75\n",
       "4wd      8\n",
       "Name: drive-wheels, dtype: int64"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df['drive-wheels'].value_counts()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can convert the series to a Dataframe as follows :"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>drive-wheels</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>fwd</td>\n",
       "      <td>118</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>rwd</td>\n",
       "      <td>75</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>4wd</td>\n",
       "      <td>8</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     drive-wheels\n",
       "fwd           118\n",
       "rwd            75\n",
       "4wd             8"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df['drive-wheels'].value_counts().to_frame()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's repeat the above steps but save the results to the dataframe \"drive_wheels_counts\" and rename the column  'drive-wheels' to 'value_counts'."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>value_counts</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>fwd</td>\n",
       "      <td>118</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>rwd</td>\n",
       "      <td>75</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>4wd</td>\n",
       "      <td>8</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     value_counts\n",
       "fwd           118\n",
       "rwd            75\n",
       "4wd             8"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "drive_wheels_counts = df['drive-wheels'].value_counts().to_frame()\n",
    "drive_wheels_counts.rename(columns={'drive-wheels': 'value_counts'}, inplace=True)\n",
    "drive_wheels_counts"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    " Now let's rename the index to 'drive-wheels':"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>value_counts</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>drive-wheels</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>fwd</td>\n",
       "      <td>118</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>rwd</td>\n",
       "      <td>75</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>4wd</td>\n",
       "      <td>8</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "              value_counts\n",
       "drive-wheels              \n",
       "fwd                    118\n",
       "rwd                     75\n",
       "4wd                      8"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "drive_wheels_counts.index.name = 'drive-wheels'\n",
    "drive_wheels_counts"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can repeat the above process for the variable 'engine-location'."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>value_counts</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>engine-location</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>front</td>\n",
       "      <td>198</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>rear</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                 value_counts\n",
       "engine-location              \n",
       "front                     198\n",
       "rear                        3"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# engine-location as variable\n",
    "engine_loc_counts = df['engine-location'].value_counts().to_frame()\n",
    "engine_loc_counts.rename(columns={'engine-location': 'value_counts'}, inplace=True)\n",
    "engine_loc_counts.index.name = 'engine-location'\n",
    "engine_loc_counts.head(10)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<p>Examining the value counts of the engine location would not be a good predictor variable for the price. This is because we only have three cars with a rear engine and 198 with an engine in the front, this result is skewed. Thus, we are not able to draw any conclusions about the engine location.</p>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h2 id=\"basic_grouping\">4. Basics of Grouping</h2>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<p>The \"groupby\" method groups data by different categories. The data is grouped based on one or several variables and analysis is performed on the individual groups.</p>\n",
    "\n",
    "<p>For example, let's group by the variable \"drive-wheels\". We see that there are 3 different categories of drive wheels.</p>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array(['rwd', 'fwd', '4wd'], dtype=object)"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df['drive-wheels'].unique()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<p>If we want to know, on average, which type of drive wheel is most valuable, we can group \"drive-wheels\" and then average them.</p>\n",
    "\n",
    "<p>We can select the columns 'drive-wheels', 'body-style' and 'price', then assign it to the variable \"df_group_one\".</p>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>drive-wheels</th>\n",
       "      <th>body-style</th>\n",
       "      <th>price</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>rwd</td>\n",
       "      <td>convertible</td>\n",
       "      <td>13495.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>rwd</td>\n",
       "      <td>convertible</td>\n",
       "      <td>16500.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2</td>\n",
       "      <td>rwd</td>\n",
       "      <td>hatchback</td>\n",
       "      <td>16500.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>3</td>\n",
       "      <td>fwd</td>\n",
       "      <td>sedan</td>\n",
       "      <td>13950.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>4</td>\n",
       "      <td>4wd</td>\n",
       "      <td>sedan</td>\n",
       "      <td>17450.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  drive-wheels   body-style    price\n",
       "0          rwd  convertible  13495.0\n",
       "1          rwd  convertible  16500.0\n",
       "2          rwd    hatchback  16500.0\n",
       "3          fwd        sedan  13950.0\n",
       "4          4wd        sedan  17450.0"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_group_one = df[['drive-wheels','body-style','price']]\n",
    "df_group_one.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can then calculate the average price for each of the different categories of data."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>drive-wheels</th>\n",
       "      <th>price</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>4wd</td>\n",
       "      <td>10241.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>fwd</td>\n",
       "      <td>9244.779661</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2</td>\n",
       "      <td>rwd</td>\n",
       "      <td>19757.613333</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  drive-wheels         price\n",
       "0          4wd  10241.000000\n",
       "1          fwd   9244.779661\n",
       "2          rwd  19757.613333"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# grouping results\n",
    "df_group_one = df_group_one.groupby(['drive-wheels'],as_index=False).mean()\n",
    "df_group_one"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<p>From our data, it seems rear-wheel drive vehicles are, on average, the most expensive, while 4-wheel and front-wheel are approximately the same in price.</p>\n",
    "\n",
    "<p>You can also group with multiple variables. For example, let's group by both 'drive-wheels' and 'body-style'. This groups the dataframe by the unique combinations 'drive-wheels' and 'body-style'. We can store the results in the variable 'grouped_test1'.</p>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>drive-wheels</th>\n",
       "      <th>body-style</th>\n",
       "      <th>price</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>4wd</td>\n",
       "      <td>hatchback</td>\n",
       "      <td>7603.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>4wd</td>\n",
       "      <td>sedan</td>\n",
       "      <td>12647.333333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2</td>\n",
       "      <td>4wd</td>\n",
       "      <td>wagon</td>\n",
       "      <td>9095.750000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>3</td>\n",
       "      <td>fwd</td>\n",
       "      <td>convertible</td>\n",
       "      <td>11595.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>4</td>\n",
       "      <td>fwd</td>\n",
       "      <td>hardtop</td>\n",
       "      <td>8249.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>5</td>\n",
       "      <td>fwd</td>\n",
       "      <td>hatchback</td>\n",
       "      <td>8396.387755</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>6</td>\n",
       "      <td>fwd</td>\n",
       "      <td>sedan</td>\n",
       "      <td>9811.800000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>7</td>\n",
       "      <td>fwd</td>\n",
       "      <td>wagon</td>\n",
       "      <td>9997.333333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>8</td>\n",
       "      <td>rwd</td>\n",
       "      <td>convertible</td>\n",
       "      <td>23949.600000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>9</td>\n",
       "      <td>rwd</td>\n",
       "      <td>hardtop</td>\n",
       "      <td>24202.714286</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>10</td>\n",
       "      <td>rwd</td>\n",
       "      <td>hatchback</td>\n",
       "      <td>14337.777778</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>11</td>\n",
       "      <td>rwd</td>\n",
       "      <td>sedan</td>\n",
       "      <td>21711.833333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>12</td>\n",
       "      <td>rwd</td>\n",
       "      <td>wagon</td>\n",
       "      <td>16994.222222</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   drive-wheels   body-style         price\n",
       "0           4wd    hatchback   7603.000000\n",
       "1           4wd        sedan  12647.333333\n",
       "2           4wd        wagon   9095.750000\n",
       "3           fwd  convertible  11595.000000\n",
       "4           fwd      hardtop   8249.000000\n",
       "5           fwd    hatchback   8396.387755\n",
       "6           fwd        sedan   9811.800000\n",
       "7           fwd        wagon   9997.333333\n",
       "8           rwd  convertible  23949.600000\n",
       "9           rwd      hardtop  24202.714286\n",
       "10          rwd    hatchback  14337.777778\n",
       "11          rwd        sedan  21711.833333\n",
       "12          rwd        wagon  16994.222222"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# grouping results\n",
    "df_gptest = df[['drive-wheels','body-style','price']]\n",
    "grouped_test1 = df_gptest.groupby(['drive-wheels','body-style'],as_index=False).mean()\n",
    "grouped_test1"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<p>This grouped data is much easier to visualize when it is made into a pivot table. A pivot table is like an Excel spreadsheet, with one variable along the column and another along the row. We can convert the dataframe to a pivot table using the method \"pivot \" to create a pivot table from the groups.</p>\n",
    "\n",
    "<p>In this case, we will leave the drive-wheel variable as the rows of the table, and pivot body-style to become the columns of the table:</p>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr:last-of-type th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th colspan=\"5\" halign=\"left\">price</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>body-style</th>\n",
       "      <th>convertible</th>\n",
       "      <th>hardtop</th>\n",
       "      <th>hatchback</th>\n",
       "      <th>sedan</th>\n",
       "      <th>wagon</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>drive-wheels</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>4wd</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>7603.000000</td>\n",
       "      <td>12647.333333</td>\n",
       "      <td>9095.750000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>fwd</td>\n",
       "      <td>11595.0</td>\n",
       "      <td>8249.000000</td>\n",
       "      <td>8396.387755</td>\n",
       "      <td>9811.800000</td>\n",
       "      <td>9997.333333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>rwd</td>\n",
       "      <td>23949.6</td>\n",
       "      <td>24202.714286</td>\n",
       "      <td>14337.777778</td>\n",
       "      <td>21711.833333</td>\n",
       "      <td>16994.222222</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                   price                                            \\\n",
       "body-style   convertible       hardtop     hatchback         sedan   \n",
       "drive-wheels                                                         \n",
       "4wd                  NaN           NaN   7603.000000  12647.333333   \n",
       "fwd              11595.0   8249.000000   8396.387755   9811.800000   \n",
       "rwd              23949.6  24202.714286  14337.777778  21711.833333   \n",
       "\n",
       "                            \n",
       "body-style           wagon  \n",
       "drive-wheels                \n",
       "4wd            9095.750000  \n",
       "fwd            9997.333333  \n",
       "rwd           16994.222222  "
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "grouped_pivot = grouped_test1.pivot(index='drive-wheels',columns='body-style')\n",
    "grouped_pivot"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {
    "collapsed": true,
    "jupyter": {
     "outputs_hidden": true
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mType:\u001b[0m        DataFrame\n",
       "\u001b[0;31mString form:\u001b[0m\n",
       "price                                            \\\n",
       "           body-style   convertible    <...>\n",
       "           4wd            9095.750000\n",
       "           fwd            9997.333333\n",
       "           rwd           16994.222222\n",
       "\u001b[0;31mLength:\u001b[0m      3\n",
       "\u001b[0;31mFile:\u001b[0m        ~/conda/envs/python/lib/python3.6/site-packages/pandas/core/frame.py\n",
       "\u001b[0;31mDocstring:\u001b[0m  \n",
       "Two-dimensional size-mutable, potentially heterogeneous tabular data\n",
       "structure with labeled axes (rows and columns). Arithmetic operations\n",
       "align on both row and column labels. Can be thought of as a dict-like\n",
       "container for Series objects. The primary pandas data structure.\n",
       "\n",
       "Parameters\n",
       "----------\n",
       "data : ndarray (structured or homogeneous), Iterable, dict, or DataFrame\n",
       "    Dict can contain Series, arrays, constants, or list-like objects\n",
       "\n",
       "    .. versionchanged :: 0.23.0\n",
       "       If data is a dict, column order follows insertion-order for\n",
       "       Python 3.6 and later.\n",
       "\n",
       "    .. versionchanged :: 0.25.0\n",
       "       If data is a list of dicts, column order follows insertion-order\n",
       "       Python 3.6 and later.\n",
       "\n",
       "index : Index or array-like\n",
       "    Index to use for resulting frame. Will default to RangeIndex if\n",
       "    no indexing information part of input data and no index provided\n",
       "columns : Index or array-like\n",
       "    Column labels to use for resulting frame. Will default to\n",
       "    RangeIndex (0, 1, 2, ..., n) if no column labels are provided\n",
       "dtype : dtype, default None\n",
       "    Data type to force. Only a single dtype is allowed. If None, infer\n",
       "copy : boolean, default False\n",
       "    Copy data from inputs. Only affects DataFrame / 2d ndarray input\n",
       "\n",
       "See Also\n",
       "--------\n",
       "DataFrame.from_records : Constructor from tuples, also record arrays.\n",
       "DataFrame.from_dict : From dicts of Series, arrays, or dicts.\n",
       "DataFrame.from_items : From sequence of (key, value) pairs\n",
       "    read_csv, pandas.read_table, pandas.read_clipboard.\n",
       "\n",
       "Examples\n",
       "--------\n",
       "Constructing DataFrame from a dictionary.\n",
       "\n",
       ">>> d = {'col1': [1, 2], 'col2': [3, 4]}\n",
       ">>> df = pd.DataFrame(data=d)\n",
       ">>> df\n",
       "   col1  col2\n",
       "0     1     3\n",
       "1     2     4\n",
       "\n",
       "Notice that the inferred dtype is int64.\n",
       "\n",
       ">>> df.dtypes\n",
       "col1    int64\n",
       "col2    int64\n",
       "dtype: object\n",
       "\n",
       "To enforce a single dtype:\n",
       "\n",
       ">>> df = pd.DataFrame(data=d, dtype=np.int8)\n",
       ">>> df.dtypes\n",
       "col1    int8\n",
       "col2    int8\n",
       "dtype: object\n",
       "\n",
       "Constructing DataFrame from numpy ndarray:\n",
       "\n",
       ">>> df2 = pd.DataFrame(np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]),\n",
       "...                    columns=['a', 'b', 'c'])\n",
       ">>> df2\n",
       "   a  b  c\n",
       "0  1  2  3\n",
       "1  4  5  6\n",
       "2  7  8  9\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "grouped_pivot?"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<p>Often, we won't have data for some of the pivot cells. We can fill these missing cells with the value 0, but any other value could potentially be used as well. It should be mentioned that missing data is quite a complex subject and is an entire course on its own.</p>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    },
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr:last-of-type th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th colspan=\"5\" halign=\"left\">price</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>body-style</th>\n",
       "      <th>convertible</th>\n",
       "      <th>hardtop</th>\n",
       "      <th>hatchback</th>\n",
       "      <th>sedan</th>\n",
       "      <th>wagon</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>drive-wheels</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>4wd</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>7603.000000</td>\n",
       "      <td>12647.333333</td>\n",
       "      <td>9095.750000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>fwd</td>\n",
       "      <td>11595.0</td>\n",
       "      <td>8249.000000</td>\n",
       "      <td>8396.387755</td>\n",
       "      <td>9811.800000</td>\n",
       "      <td>9997.333333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>rwd</td>\n",
       "      <td>23949.6</td>\n",
       "      <td>24202.714286</td>\n",
       "      <td>14337.777778</td>\n",
       "      <td>21711.833333</td>\n",
       "      <td>16994.222222</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                   price                                            \\\n",
       "body-style   convertible       hardtop     hatchback         sedan   \n",
       "drive-wheels                                                         \n",
       "4wd                  0.0      0.000000   7603.000000  12647.333333   \n",
       "fwd              11595.0   8249.000000   8396.387755   9811.800000   \n",
       "rwd              23949.6  24202.714286  14337.777778  21711.833333   \n",
       "\n",
       "                            \n",
       "body-style           wagon  \n",
       "drive-wheels                \n",
       "4wd            9095.750000  \n",
       "fwd            9997.333333  \n",
       "rwd           16994.222222  "
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "grouped_pivot = grouped_pivot.fillna(0) #fill missing values with 0\n",
    "grouped_pivot"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<div class=\"alert alert-danger alertdanger\" style=\"margin-top: 20px\">\n",
    "<h1>Question 4:</h1>\n",
    "\n",
    "<p>Use the \"groupby\" function to find the average \"price\" of each car based on \"body-style\" ? </p>\n",
    "</div>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>body-style</th>\n",
       "      <th>price</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>convertible</td>\n",
       "      <td>21890.500000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>hardtop</td>\n",
       "      <td>22208.500000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2</td>\n",
       "      <td>hatchback</td>\n",
       "      <td>9957.441176</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>3</td>\n",
       "      <td>sedan</td>\n",
       "      <td>14459.755319</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>4</td>\n",
       "      <td>wagon</td>\n",
       "      <td>12371.960000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    body-style         price\n",
       "0  convertible  21890.500000\n",
       "1      hardtop  22208.500000\n",
       "2    hatchback   9957.441176\n",
       "3        sedan  14459.755319\n",
       "4        wagon  12371.960000"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Write your code below and press Shift+Enter to execute \n",
    "df_gptest2 = df[['body-style','price']]\n",
    "grouped_test_bodystyle = df_gptest2.groupby(['body-style'],as_index= False).mean()\n",
    "grouped_test_bodystyle"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Double-click <b>here</b> for the solution.\n",
    "\n",
    "<!-- The answer is below:\n",
    "\n",
    "# grouping results\n",
    "df_gptest2 = df[['body-style','price']]\n",
    "grouped_test_bodystyle = df_gptest2.groupby(['body-style'],as_index= False).mean()\n",
    "grouped_test_bodystyle\n",
    "\n",
    "-->"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "If you did not import \"pyplot\" let's do it again. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h4>Variables: Drive Wheels and Body Style vs Price</h4>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's use a heat map to visualize the relationship between Body Style vs Price."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#use the grouped results\n",
    "plt.pcolor(grouped_pivot, cmap='RdBu')\n",
    "plt.colorbar()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<p>The heatmap plots the target variable (price) proportional to colour with respect to the variables 'drive-wheel' and 'body-style' in the vertical and horizontal axis respectively. This allows us to visualize how the price is related to 'drive-wheel' and 'body-style'.</p>\n",
    "\n",
    "<p>The default labels convey no useful information to us. Let's change that:</p>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots()\n",
    "im = ax.pcolor(grouped_pivot, cmap='RdBu')\n",
    "\n",
    "#label names\n",
    "row_labels = grouped_pivot.columns.levels[1]\n",
    "col_labels = grouped_pivot.index\n",
    "\n",
    "#move ticks and labels to the center\n",
    "ax.set_xticks(np.arange(grouped_pivot.shape[1]) + 0.5, minor=False)\n",
    "ax.set_yticks(np.arange(grouped_pivot.shape[0]) + 0.5, minor=False)\n",
    "\n",
    "#insert labels\n",
    "ax.set_xticklabels(row_labels, minor=False)\n",
    "ax.set_yticklabels(col_labels, minor=False)\n",
    "\n",
    "#rotate label if too long\n",
    "plt.xticks(rotation=90)\n",
    "\n",
    "fig.colorbar(im)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<p>Visualization is very important in data science, and Python visualization packages provide great freedom. We will go more in-depth in a separate Python Visualizations course.</p>\n",
    "\n",
    "<p>The main question we want to answer in this module, is \"What are the main characteristics which have the most impact on the car price?\".</p>\n",
    "\n",
    "<p>To get a better measure of the important characteristics, we look at the correlation of these variables with the car price, in other words: how is the car price dependent on this variable?</p>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h2 id=\"correlation_causation\">5. Correlation and Causation</h2>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<p><b>Correlation</b>: a measure of the extent of interdependence between variables.</p>\n",
    "\n",
    "<p><b>Causation</b>: the relationship between cause and effect between two variables.</p>\n",
    "\n",
    "<p>It is important to know the difference between these two and that correlation does not imply causation. Determining correlation is much simpler  the determining causation as causation may require independent experimentation.</p>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<p3>Pearson Correlation</p>\n",
    "<p>The Pearson Correlation measures the linear dependence between two variables X and Y.</p>\n",
    "<p>The resulting coefficient is a value between -1 and 1 inclusive, where:</p>\n",
    "<ul>\n",
    "    <li><b>1</b>: Total positive linear correlation.</li>\n",
    "    <li><b>0</b>: No linear correlation, the two variables most likely do not affect each other.</li>\n",
    "    <li><b>-1</b>: Total negative linear correlation.</li>\n",
    "</ul>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<p>Pearson Correlation is the default method of the function \"corr\".  Like before we can calculate the Pearson Correlation of the of the 'int64' or 'float64'  variables.</p>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>symboling</th>\n",
       "      <th>normalized-losses</th>\n",
       "      <th>wheel-base</th>\n",
       "      <th>length</th>\n",
       "      <th>width</th>\n",
       "      <th>height</th>\n",
       "      <th>curb-weight</th>\n",
       "      <th>engine-size</th>\n",
       "      <th>bore</th>\n",
       "      <th>stroke</th>\n",
       "      <th>compression-ratio</th>\n",
       "      <th>horsepower</th>\n",
       "      <th>peak-rpm</th>\n",
       "      <th>city-mpg</th>\n",
       "      <th>highway-mpg</th>\n",
       "      <th>price</th>\n",
       "      <th>city-L/100km</th>\n",
       "      <th>diesel</th>\n",
       "      <th>gas</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>symboling</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.466264</td>\n",
       "      <td>-0.535987</td>\n",
       "      <td>-0.365404</td>\n",
       "      <td>-0.242423</td>\n",
       "      <td>-0.550160</td>\n",
       "      <td>-0.233118</td>\n",
       "      <td>-0.110581</td>\n",
       "      <td>-0.140019</td>\n",
       "      <td>-0.008245</td>\n",
       "      <td>-0.182196</td>\n",
       "      <td>0.075819</td>\n",
       "      <td>0.279740</td>\n",
       "      <td>-0.035527</td>\n",
       "      <td>0.036233</td>\n",
       "      <td>-0.082391</td>\n",
       "      <td>0.066171</td>\n",
       "      <td>-0.196735</td>\n",
       "      <td>0.196735</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>normalized-losses</td>\n",
       "      <td>0.466264</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>-0.056661</td>\n",
       "      <td>0.019424</td>\n",
       "      <td>0.086802</td>\n",
       "      <td>-0.373737</td>\n",
       "      <td>0.099404</td>\n",
       "      <td>0.112360</td>\n",
       "      <td>-0.029862</td>\n",
       "      <td>0.055563</td>\n",
       "      <td>-0.114713</td>\n",
       "      <td>0.217299</td>\n",
       "      <td>0.239543</td>\n",
       "      <td>-0.225016</td>\n",
       "      <td>-0.181877</td>\n",
       "      <td>0.133999</td>\n",
       "      <td>0.238567</td>\n",
       "      <td>-0.101546</td>\n",
       "      <td>0.101546</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>wheel-base</td>\n",
       "      <td>-0.535987</td>\n",
       "      <td>-0.056661</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.876024</td>\n",
       "      <td>0.814507</td>\n",
       "      <td>0.590742</td>\n",
       "      <td>0.782097</td>\n",
       "      <td>0.572027</td>\n",
       "      <td>0.493244</td>\n",
       "      <td>0.158502</td>\n",
       "      <td>0.250313</td>\n",
       "      <td>0.371147</td>\n",
       "      <td>-0.360305</td>\n",
       "      <td>-0.470606</td>\n",
       "      <td>-0.543304</td>\n",
       "      <td>0.584642</td>\n",
       "      <td>0.476153</td>\n",
       "      <td>0.307237</td>\n",
       "      <td>-0.307237</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>length</td>\n",
       "      <td>-0.365404</td>\n",
       "      <td>0.019424</td>\n",
       "      <td>0.876024</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.857170</td>\n",
       "      <td>0.492063</td>\n",
       "      <td>0.880665</td>\n",
       "      <td>0.685025</td>\n",
       "      <td>0.608971</td>\n",
       "      <td>0.124139</td>\n",
       "      <td>0.159733</td>\n",
       "      <td>0.579821</td>\n",
       "      <td>-0.285970</td>\n",
       "      <td>-0.665192</td>\n",
       "      <td>-0.698142</td>\n",
       "      <td>0.690628</td>\n",
       "      <td>0.657373</td>\n",
       "      <td>0.211187</td>\n",
       "      <td>-0.211187</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>width</td>\n",
       "      <td>-0.242423</td>\n",
       "      <td>0.086802</td>\n",
       "      <td>0.814507</td>\n",
       "      <td>0.857170</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.306002</td>\n",
       "      <td>0.866201</td>\n",
       "      <td>0.729436</td>\n",
       "      <td>0.544885</td>\n",
       "      <td>0.188829</td>\n",
       "      <td>0.189867</td>\n",
       "      <td>0.615077</td>\n",
       "      <td>-0.245800</td>\n",
       "      <td>-0.633531</td>\n",
       "      <td>-0.680635</td>\n",
       "      <td>0.751265</td>\n",
       "      <td>0.673363</td>\n",
       "      <td>0.244356</td>\n",
       "      <td>-0.244356</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>height</td>\n",
       "      <td>-0.550160</td>\n",
       "      <td>-0.373737</td>\n",
       "      <td>0.590742</td>\n",
       "      <td>0.492063</td>\n",
       "      <td>0.306002</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.307581</td>\n",
       "      <td>0.074694</td>\n",
       "      <td>0.180449</td>\n",
       "      <td>-0.062704</td>\n",
       "      <td>0.259737</td>\n",
       "      <td>-0.087027</td>\n",
       "      <td>-0.309974</td>\n",
       "      <td>-0.049800</td>\n",
       "      <td>-0.104812</td>\n",
       "      <td>0.135486</td>\n",
       "      <td>0.003811</td>\n",
       "      <td>0.281578</td>\n",
       "      <td>-0.281578</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>curb-weight</td>\n",
       "      <td>-0.233118</td>\n",
       "      <td>0.099404</td>\n",
       "      <td>0.782097</td>\n",
       "      <td>0.880665</td>\n",
       "      <td>0.866201</td>\n",
       "      <td>0.307581</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.849072</td>\n",
       "      <td>0.644060</td>\n",
       "      <td>0.167562</td>\n",
       "      <td>0.156433</td>\n",
       "      <td>0.757976</td>\n",
       "      <td>-0.279361</td>\n",
       "      <td>-0.749543</td>\n",
       "      <td>-0.794889</td>\n",
       "      <td>0.834415</td>\n",
       "      <td>0.785353</td>\n",
       "      <td>0.221046</td>\n",
       "      <td>-0.221046</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>engine-size</td>\n",
       "      <td>-0.110581</td>\n",
       "      <td>0.112360</td>\n",
       "      <td>0.572027</td>\n",
       "      <td>0.685025</td>\n",
       "      <td>0.729436</td>\n",
       "      <td>0.074694</td>\n",
       "      <td>0.849072</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.572609</td>\n",
       "      <td>0.209523</td>\n",
       "      <td>0.028889</td>\n",
       "      <td>0.822676</td>\n",
       "      <td>-0.256733</td>\n",
       "      <td>-0.650546</td>\n",
       "      <td>-0.679571</td>\n",
       "      <td>0.872335</td>\n",
       "      <td>0.745059</td>\n",
       "      <td>0.070779</td>\n",
       "      <td>-0.070779</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>bore</td>\n",
       "      <td>-0.140019</td>\n",
       "      <td>-0.029862</td>\n",
       "      <td>0.493244</td>\n",
       "      <td>0.608971</td>\n",
       "      <td>0.544885</td>\n",
       "      <td>0.180449</td>\n",
       "      <td>0.644060</td>\n",
       "      <td>0.572609</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>-0.055390</td>\n",
       "      <td>0.001263</td>\n",
       "      <td>0.566936</td>\n",
       "      <td>-0.267392</td>\n",
       "      <td>-0.582027</td>\n",
       "      <td>-0.591309</td>\n",
       "      <td>0.543155</td>\n",
       "      <td>0.554610</td>\n",
       "      <td>0.054458</td>\n",
       "      <td>-0.054458</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>stroke</td>\n",
       "      <td>-0.008245</td>\n",
       "      <td>0.055563</td>\n",
       "      <td>0.158502</td>\n",
       "      <td>0.124139</td>\n",
       "      <td>0.188829</td>\n",
       "      <td>-0.062704</td>\n",
       "      <td>0.167562</td>\n",
       "      <td>0.209523</td>\n",
       "      <td>-0.055390</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.187923</td>\n",
       "      <td>0.098462</td>\n",
       "      <td>-0.065713</td>\n",
       "      <td>-0.034696</td>\n",
       "      <td>-0.035201</td>\n",
       "      <td>0.082310</td>\n",
       "      <td>0.037300</td>\n",
       "      <td>0.241303</td>\n",
       "      <td>-0.241303</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>compression-ratio</td>\n",
       "      <td>-0.182196</td>\n",
       "      <td>-0.114713</td>\n",
       "      <td>0.250313</td>\n",
       "      <td>0.159733</td>\n",
       "      <td>0.189867</td>\n",
       "      <td>0.259737</td>\n",
       "      <td>0.156433</td>\n",
       "      <td>0.028889</td>\n",
       "      <td>0.001263</td>\n",
       "      <td>0.187923</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>-0.214514</td>\n",
       "      <td>-0.435780</td>\n",
       "      <td>0.331425</td>\n",
       "      <td>0.268465</td>\n",
       "      <td>0.071107</td>\n",
       "      <td>-0.299372</td>\n",
       "      <td>0.985231</td>\n",
       "      <td>-0.985231</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>horsepower</td>\n",
       "      <td>0.075819</td>\n",
       "      <td>0.217299</td>\n",
       "      <td>0.371147</td>\n",
       "      <td>0.579821</td>\n",
       "      <td>0.615077</td>\n",
       "      <td>-0.087027</td>\n",
       "      <td>0.757976</td>\n",
       "      <td>0.822676</td>\n",
       "      <td>0.566936</td>\n",
       "      <td>0.098462</td>\n",
       "      <td>-0.214514</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.107885</td>\n",
       "      <td>-0.822214</td>\n",
       "      <td>-0.804575</td>\n",
       "      <td>0.809575</td>\n",
       "      <td>0.889488</td>\n",
       "      <td>-0.169053</td>\n",
       "      <td>0.169053</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>peak-rpm</td>\n",
       "      <td>0.279740</td>\n",
       "      <td>0.239543</td>\n",
       "      <td>-0.360305</td>\n",
       "      <td>-0.285970</td>\n",
       "      <td>-0.245800</td>\n",
       "      <td>-0.309974</td>\n",
       "      <td>-0.279361</td>\n",
       "      <td>-0.256733</td>\n",
       "      <td>-0.267392</td>\n",
       "      <td>-0.065713</td>\n",
       "      <td>-0.435780</td>\n",
       "      <td>0.107885</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>-0.115413</td>\n",
       "      <td>-0.058598</td>\n",
       "      <td>-0.101616</td>\n",
       "      <td>0.115830</td>\n",
       "      <td>-0.475812</td>\n",
       "      <td>0.475812</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>city-mpg</td>\n",
       "      <td>-0.035527</td>\n",
       "      <td>-0.225016</td>\n",
       "      <td>-0.470606</td>\n",
       "      <td>-0.665192</td>\n",
       "      <td>-0.633531</td>\n",
       "      <td>-0.049800</td>\n",
       "      <td>-0.749543</td>\n",
       "      <td>-0.650546</td>\n",
       "      <td>-0.582027</td>\n",
       "      <td>-0.034696</td>\n",
       "      <td>0.331425</td>\n",
       "      <td>-0.822214</td>\n",
       "      <td>-0.115413</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.972044</td>\n",
       "      <td>-0.686571</td>\n",
       "      <td>-0.949713</td>\n",
       "      <td>0.265676</td>\n",
       "      <td>-0.265676</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>highway-mpg</td>\n",
       "      <td>0.036233</td>\n",
       "      <td>-0.181877</td>\n",
       "      <td>-0.543304</td>\n",
       "      <td>-0.698142</td>\n",
       "      <td>-0.680635</td>\n",
       "      <td>-0.104812</td>\n",
       "      <td>-0.794889</td>\n",
       "      <td>-0.679571</td>\n",
       "      <td>-0.591309</td>\n",
       "      <td>-0.035201</td>\n",
       "      <td>0.268465</td>\n",
       "      <td>-0.804575</td>\n",
       "      <td>-0.058598</td>\n",
       "      <td>0.972044</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>-0.704692</td>\n",
       "      <td>-0.930028</td>\n",
       "      <td>0.198690</td>\n",
       "      <td>-0.198690</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>price</td>\n",
       "      <td>-0.082391</td>\n",
       "      <td>0.133999</td>\n",
       "      <td>0.584642</td>\n",
       "      <td>0.690628</td>\n",
       "      <td>0.751265</td>\n",
       "      <td>0.135486</td>\n",
       "      <td>0.834415</td>\n",
       "      <td>0.872335</td>\n",
       "      <td>0.543155</td>\n",
       "      <td>0.082310</td>\n",
       "      <td>0.071107</td>\n",
       "      <td>0.809575</td>\n",
       "      <td>-0.101616</td>\n",
       "      <td>-0.686571</td>\n",
       "      <td>-0.704692</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.789898</td>\n",
       "      <td>0.110326</td>\n",
       "      <td>-0.110326</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>city-L/100km</td>\n",
       "      <td>0.066171</td>\n",
       "      <td>0.238567</td>\n",
       "      <td>0.476153</td>\n",
       "      <td>0.657373</td>\n",
       "      <td>0.673363</td>\n",
       "      <td>0.003811</td>\n",
       "      <td>0.785353</td>\n",
       "      <td>0.745059</td>\n",
       "      <td>0.554610</td>\n",
       "      <td>0.037300</td>\n",
       "      <td>-0.299372</td>\n",
       "      <td>0.889488</td>\n",
       "      <td>0.115830</td>\n",
       "      <td>-0.949713</td>\n",
       "      <td>-0.930028</td>\n",
       "      <td>0.789898</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>-0.241282</td>\n",
       "      <td>0.241282</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>diesel</td>\n",
       "      <td>-0.196735</td>\n",
       "      <td>-0.101546</td>\n",
       "      <td>0.307237</td>\n",
       "      <td>0.211187</td>\n",
       "      <td>0.244356</td>\n",
       "      <td>0.281578</td>\n",
       "      <td>0.221046</td>\n",
       "      <td>0.070779</td>\n",
       "      <td>0.054458</td>\n",
       "      <td>0.241303</td>\n",
       "      <td>0.985231</td>\n",
       "      <td>-0.169053</td>\n",
       "      <td>-0.475812</td>\n",
       "      <td>0.265676</td>\n",
       "      <td>0.198690</td>\n",
       "      <td>0.110326</td>\n",
       "      <td>-0.241282</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>-1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>gas</td>\n",
       "      <td>0.196735</td>\n",
       "      <td>0.101546</td>\n",
       "      <td>-0.307237</td>\n",
       "      <td>-0.211187</td>\n",
       "      <td>-0.244356</td>\n",
       "      <td>-0.281578</td>\n",
       "      <td>-0.221046</td>\n",
       "      <td>-0.070779</td>\n",
       "      <td>-0.054458</td>\n",
       "      <td>-0.241303</td>\n",
       "      <td>-0.985231</td>\n",
       "      <td>0.169053</td>\n",
       "      <td>0.475812</td>\n",
       "      <td>-0.265676</td>\n",
       "      <td>-0.198690</td>\n",
       "      <td>-0.110326</td>\n",
       "      <td>0.241282</td>\n",
       "      <td>-1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                   symboling  normalized-losses  wheel-base    length  \\\n",
       "symboling           1.000000           0.466264   -0.535987 -0.365404   \n",
       "normalized-losses   0.466264           1.000000   -0.056661  0.019424   \n",
       "wheel-base         -0.535987          -0.056661    1.000000  0.876024   \n",
       "length             -0.365404           0.019424    0.876024  1.000000   \n",
       "width              -0.242423           0.086802    0.814507  0.857170   \n",
       "height             -0.550160          -0.373737    0.590742  0.492063   \n",
       "curb-weight        -0.233118           0.099404    0.782097  0.880665   \n",
       "engine-size        -0.110581           0.112360    0.572027  0.685025   \n",
       "bore               -0.140019          -0.029862    0.493244  0.608971   \n",
       "stroke             -0.008245           0.055563    0.158502  0.124139   \n",
       "compression-ratio  -0.182196          -0.114713    0.250313  0.159733   \n",
       "horsepower          0.075819           0.217299    0.371147  0.579821   \n",
       "peak-rpm            0.279740           0.239543   -0.360305 -0.285970   \n",
       "city-mpg           -0.035527          -0.225016   -0.470606 -0.665192   \n",
       "highway-mpg         0.036233          -0.181877   -0.543304 -0.698142   \n",
       "price              -0.082391           0.133999    0.584642  0.690628   \n",
       "city-L/100km        0.066171           0.238567    0.476153  0.657373   \n",
       "diesel             -0.196735          -0.101546    0.307237  0.211187   \n",
       "gas                 0.196735           0.101546   -0.307237 -0.211187   \n",
       "\n",
       "                      width    height  curb-weight  engine-size      bore  \\\n",
       "symboling         -0.242423 -0.550160    -0.233118    -0.110581 -0.140019   \n",
       "normalized-losses  0.086802 -0.373737     0.099404     0.112360 -0.029862   \n",
       "wheel-base         0.814507  0.590742     0.782097     0.572027  0.493244   \n",
       "length             0.857170  0.492063     0.880665     0.685025  0.608971   \n",
       "width              1.000000  0.306002     0.866201     0.729436  0.544885   \n",
       "height             0.306002  1.000000     0.307581     0.074694  0.180449   \n",
       "curb-weight        0.866201  0.307581     1.000000     0.849072  0.644060   \n",
       "engine-size        0.729436  0.074694     0.849072     1.000000  0.572609   \n",
       "bore               0.544885  0.180449     0.644060     0.572609  1.000000   \n",
       "stroke             0.188829 -0.062704     0.167562     0.209523 -0.055390   \n",
       "compression-ratio  0.189867  0.259737     0.156433     0.028889  0.001263   \n",
       "horsepower         0.615077 -0.087027     0.757976     0.822676  0.566936   \n",
       "peak-rpm          -0.245800 -0.309974    -0.279361    -0.256733 -0.267392   \n",
       "city-mpg          -0.633531 -0.049800    -0.749543    -0.650546 -0.582027   \n",
       "highway-mpg       -0.680635 -0.104812    -0.794889    -0.679571 -0.591309   \n",
       "price              0.751265  0.135486     0.834415     0.872335  0.543155   \n",
       "city-L/100km       0.673363  0.003811     0.785353     0.745059  0.554610   \n",
       "diesel             0.244356  0.281578     0.221046     0.070779  0.054458   \n",
       "gas               -0.244356 -0.281578    -0.221046    -0.070779 -0.054458   \n",
       "\n",
       "                     stroke  compression-ratio  horsepower  peak-rpm  \\\n",
       "symboling         -0.008245          -0.182196    0.075819  0.279740   \n",
       "normalized-losses  0.055563          -0.114713    0.217299  0.239543   \n",
       "wheel-base         0.158502           0.250313    0.371147 -0.360305   \n",
       "length             0.124139           0.159733    0.579821 -0.285970   \n",
       "width              0.188829           0.189867    0.615077 -0.245800   \n",
       "height            -0.062704           0.259737   -0.087027 -0.309974   \n",
       "curb-weight        0.167562           0.156433    0.757976 -0.279361   \n",
       "engine-size        0.209523           0.028889    0.822676 -0.256733   \n",
       "bore              -0.055390           0.001263    0.566936 -0.267392   \n",
       "stroke             1.000000           0.187923    0.098462 -0.065713   \n",
       "compression-ratio  0.187923           1.000000   -0.214514 -0.435780   \n",
       "horsepower         0.098462          -0.214514    1.000000  0.107885   \n",
       "peak-rpm          -0.065713          -0.435780    0.107885  1.000000   \n",
       "city-mpg          -0.034696           0.331425   -0.822214 -0.115413   \n",
       "highway-mpg       -0.035201           0.268465   -0.804575 -0.058598   \n",
       "price              0.082310           0.071107    0.809575 -0.101616   \n",
       "city-L/100km       0.037300          -0.299372    0.889488  0.115830   \n",
       "diesel             0.241303           0.985231   -0.169053 -0.475812   \n",
       "gas               -0.241303          -0.985231    0.169053  0.475812   \n",
       "\n",
       "                   city-mpg  highway-mpg     price  city-L/100km    diesel  \\\n",
       "symboling         -0.035527     0.036233 -0.082391      0.066171 -0.196735   \n",
       "normalized-losses -0.225016    -0.181877  0.133999      0.238567 -0.101546   \n",
       "wheel-base        -0.470606    -0.543304  0.584642      0.476153  0.307237   \n",
       "length            -0.665192    -0.698142  0.690628      0.657373  0.211187   \n",
       "width             -0.633531    -0.680635  0.751265      0.673363  0.244356   \n",
       "height            -0.049800    -0.104812  0.135486      0.003811  0.281578   \n",
       "curb-weight       -0.749543    -0.794889  0.834415      0.785353  0.221046   \n",
       "engine-size       -0.650546    -0.679571  0.872335      0.745059  0.070779   \n",
       "bore              -0.582027    -0.591309  0.543155      0.554610  0.054458   \n",
       "stroke            -0.034696    -0.035201  0.082310      0.037300  0.241303   \n",
       "compression-ratio  0.331425     0.268465  0.071107     -0.299372  0.985231   \n",
       "horsepower        -0.822214    -0.804575  0.809575      0.889488 -0.169053   \n",
       "peak-rpm          -0.115413    -0.058598 -0.101616      0.115830 -0.475812   \n",
       "city-mpg           1.000000     0.972044 -0.686571     -0.949713  0.265676   \n",
       "highway-mpg        0.972044     1.000000 -0.704692     -0.930028  0.198690   \n",
       "price             -0.686571    -0.704692  1.000000      0.789898  0.110326   \n",
       "city-L/100km      -0.949713    -0.930028  0.789898      1.000000 -0.241282   \n",
       "diesel             0.265676     0.198690  0.110326     -0.241282  1.000000   \n",
       "gas               -0.265676    -0.198690 -0.110326      0.241282 -1.000000   \n",
       "\n",
       "                        gas  \n",
       "symboling          0.196735  \n",
       "normalized-losses  0.101546  \n",
       "wheel-base        -0.307237  \n",
       "length            -0.211187  \n",
       "width             -0.244356  \n",
       "height            -0.281578  \n",
       "curb-weight       -0.221046  \n",
       "engine-size       -0.070779  \n",
       "bore              -0.054458  \n",
       "stroke            -0.241303  \n",
       "compression-ratio -0.985231  \n",
       "horsepower         0.169053  \n",
       "peak-rpm           0.475812  \n",
       "city-mpg          -0.265676  \n",
       "highway-mpg       -0.198690  \n",
       "price             -0.110326  \n",
       "city-L/100km       0.241282  \n",
       "diesel            -1.000000  \n",
       "gas                1.000000  "
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.corr()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    " sometimes we would like to know the significant of the correlation estimate. "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<b>P-value</b>: \n",
    "<p>What is this P-value? The P-value is the probability value that the correlation between these two variables is statistically significant. Normally, we choose a significance level of 0.05, which means that we are 95% confident that the correlation between the variables is significant.</p>\n",
    "\n",
    "By convention, when the\n",
    "<ul>\n",
    "    <li>p-value is $<$ 0.001: we say there is strong evidence that the correlation is significant.</li>\n",
    "    <li>the p-value is $<$ 0.05: there is moderate evidence that the correlation is significant.</li>\n",
    "    <li>the p-value is $<$ 0.1: there is weak evidence that the correlation is significant.</li>\n",
    "    <li>the p-value is $>$ 0.1: there is no evidence that the correlation is significant.</li>\n",
    "</ul>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    " We can obtain this information using  \"stats\" module in the \"scipy\"  library."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [],
   "source": [
    "from scipy import stats"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h3>Wheel-base vs Price</h3>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's calculate the  Pearson Correlation Coefficient and P-value of 'wheel-base' and 'price'. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The Pearson Correlation Coefficient is 0.5846418222655081  with a P-value of P = 8.076488270732955e-20\n"
     ]
    }
   ],
   "source": [
    "pearson_coef, p_value = stats.pearsonr(df['wheel-base'], df['price'])\n",
    "print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value)  "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h5>Conclusion:</h5>\n",
    "<p>Since the p-value is $<$ 0.001, the correlation between wheel-base and price is statistically significant, although the linear relationship isn't extremely strong (~0.585)</p>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h3>Horsepower vs Price</h3>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    " Let's calculate the  Pearson Correlation Coefficient and P-value of 'horsepower' and 'price'."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    }
   },
   "outputs": [],
   "source": [
    "pearson_coef, p_value = stats.pearsonr(df['horsepower'], df['price'])\n",
    "print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value)  "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h5>Conclusion:</h5>\n",
    "\n",
    "<p>Since the p-value is $<$ 0.001, the correlation between horsepower and price is statistically significant, and the linear relationship is quite strong (~0.809, close to 1)</p>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h3>Length vs Price</h3>\n",
    "\n",
    "Let's calculate the  Pearson Correlation Coefficient and P-value of 'length' and 'price'."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    }
   },
   "outputs": [],
   "source": [
    "pearson_coef, p_value = stats.pearsonr(df['length'], df['price'])\n",
    "print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value)  "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h5>Conclusion:</h5>\n",
    "<p>Since the p-value is $<$ 0.001, the correlation between length and price is statistically significant, and the linear relationship is moderately strong (~0.691).</p>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h3>Width vs Price</h3>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    " Let's calculate the Pearson Correlation Coefficient and P-value of 'width' and 'price':"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    }
   },
   "outputs": [],
   "source": [
    "pearson_coef, p_value = stats.pearsonr(df['width'], df['price'])\n",
    "print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value ) "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##### Conclusion:\n",
    "\n",
    "Since the p-value is < 0.001, the correlation between width and price is statistically significant, and the linear relationship is quite strong (~0.751)."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Curb-weight vs Price"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    " Let's calculate the Pearson Correlation Coefficient and P-value of 'curb-weight' and 'price':"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    }
   },
   "outputs": [],
   "source": [
    "pearson_coef, p_value = stats.pearsonr(df['curb-weight'], df['price'])\n",
    "print( \"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value)  "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h5>Conclusion:</h5>\n",
    "<p>Since the p-value is $<$ 0.001, the correlation between curb-weight and price is statistically significant, and the linear relationship is quite strong (~0.834).</p>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h3>Engine-size vs Price</h3>\n",
    "\n",
    "Let's calculate the Pearson Correlation Coefficient and P-value of 'engine-size' and 'price':"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    }
   },
   "outputs": [],
   "source": [
    "pearson_coef, p_value = stats.pearsonr(df['engine-size'], df['price'])\n",
    "print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value) "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h5>Conclusion:</h5>\n",
    "\n",
    "<p>Since the p-value is $<$ 0.001, the correlation between engine-size and price is statistically significant, and the linear relationship is very strong (~0.872).</p>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h3>Bore vs Price</h3>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    " Let's calculate the  Pearson Correlation Coefficient and P-value of 'bore' and 'price':"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    }
   },
   "outputs": [],
   "source": [
    "pearson_coef, p_value = stats.pearsonr(df['bore'], df['price'])\n",
    "print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =  \", p_value ) "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h5>Conclusion:</h5>\n",
    "<p>Since the p-value is $<$ 0.001, the correlation between bore and price is statistically significant, but the linear relationship is only moderate (~0.521).</p>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    " We can relate the process for each 'City-mpg'  and 'Highway-mpg':"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h3>City-mpg vs Price</h3>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    }
   },
   "outputs": [],
   "source": [
    "pearson_coef, p_value = stats.pearsonr(df['city-mpg'], df['price'])\n",
    "print(\"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value)  "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h5>Conclusion:</h5>\n",
    "<p>Since the p-value is $<$ 0.001, the correlation between city-mpg and price is statistically significant, and the coefficient of ~ -0.687 shows that the relationship is negative and moderately strong.</p>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h3>Highway-mpg vs Price</h3>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    }
   },
   "outputs": [],
   "source": [
    "pearson_coef, p_value = stats.pearsonr(df['highway-mpg'], df['price'])\n",
    "print( \"The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P = \", p_value ) "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##### Conclusion:\n",
    "Since the p-value is < 0.001, the correlation between highway-mpg and price is statistically significant, and the coefficient of ~ -0.705 shows that the relationship is negative and moderately strong."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h2 id=\"anova\">6. ANOVA</h2>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h3>ANOVA: Analysis of Variance</h3>\n",
    "<p>The Analysis of Variance  (ANOVA) is a statistical method used to test whether there are significant differences between the means of two or more groups. ANOVA returns two parameters:</p>\n",
    "\n",
    "<p><b>F-test score</b>: ANOVA assumes the means of all groups are the same, calculates how much the actual means deviate from the assumption, and reports it as the F-test score. A larger score means there is a larger difference between the means.</p>\n",
    "\n",
    "<p><b>P-value</b>:  P-value tells how statistically significant is our calculated score value.</p>\n",
    "\n",
    "<p>If our price variable is strongly correlated with the variable we are analyzing, expect ANOVA to return a sizeable F-test score and a small p-value.</p>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h3>Drive Wheels</h3>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<p>Since ANOVA analyzes the difference between different groups of the same variable, the groupby function will come in handy. Because the ANOVA algorithm averages the data automatically, we do not need to take the average before hand.</p>\n",
    "\n",
    "<p>Let's see if different types 'drive-wheels' impact  'price', we group the data.</p>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    " Let's see if different types 'drive-wheels' impact  'price', we group the data."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    }
   },
   "outputs": [],
   "source": [
    "grouped_test2=df_gptest[['drive-wheels', 'price']].groupby(['drive-wheels'])\n",
    "grouped_test2.head(2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "df_gptest"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    " We can obtain the values of the method group using the method \"get_group\".  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    }
   },
   "outputs": [],
   "source": [
    "grouped_test2.get_group('4wd')['price']"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "we can use the function 'f_oneway' in the module 'stats'  to obtain the <b>F-test score</b> and <b>P-value</b>."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    }
   },
   "outputs": [],
   "source": [
    "# ANOVA\n",
    "f_val, p_val = stats.f_oneway(grouped_test2.get_group('fwd')['price'], grouped_test2.get_group('rwd')['price'], grouped_test2.get_group('4wd')['price'])  \n",
    " \n",
    "print( \"ANOVA results: F=\", f_val, \", P =\", p_val)   "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This is a great result, with a large F test score showing a strong correlation and a P value of almost 0 implying almost certain statistical significance. But does this mean all three tested groups are all this highly correlated? "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Separately: fwd and rwd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    }
   },
   "outputs": [],
   "source": [
    "f_val, p_val = stats.f_oneway(grouped_test2.get_group('fwd')['price'], grouped_test2.get_group('rwd')['price'])  \n",
    " \n",
    "print( \"ANOVA results: F=\", f_val, \", P =\", p_val )"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    " Let's examine the other groups "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 4wd and rwd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    },
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "f_val, p_val = stats.f_oneway(grouped_test2.get_group('4wd')['price'], grouped_test2.get_group('rwd')['price'])  \n",
    "   \n",
    "print( \"ANOVA results: F=\", f_val, \", P =\", p_val)   "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h4>4wd and fwd</h4>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false,
    "jupyter": {
     "outputs_hidden": false
    }
   },
   "outputs": [],
   "source": [
    "f_val, p_val = stats.f_oneway(grouped_test2.get_group('4wd')['price'], grouped_test2.get_group('fwd')['price'])  \n",
    " \n",
    "print(\"ANOVA results: F=\", f_val, \", P =\", p_val)   "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h3>Conclusion: Important Variables</h3>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<p>We now have a better idea of what our data looks like and which variables are important to take into account when predicting the car price. We have narrowed it down to the following variables:</p>\n",
    "\n",
    "Continuous numerical variables:\n",
    "<ul>\n",
    "    <li>Length</li>\n",
    "    <li>Width</li>\n",
    "    <li>Curb-weight</li>\n",
    "    <li>Engine-size</li>\n",
    "    <li>Horsepower</li>\n",
    "    <li>City-mpg</li>\n",
    "    <li>Highway-mpg</li>\n",
    "    <li>Wheel-base</li>\n",
    "    <li>Bore</li>\n",
    "</ul>\n",
    "    \n",
    "Categorical variables:\n",
    "<ul>\n",
    "    <li>Drive-wheels</li>\n",
    "</ul>\n",
    "\n",
    "<p>As we now move into building machine learning models to automate our analysis, feeding the model with variables that meaningfully affect our target variable will improve our model's prediction performance.</p>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h1>Thank you for completing this notebook</h1>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
    "\n",
    "    <p><a href=\"https://cocl.us/corsera_da0101en_notebook_bottom\"><img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DA0101EN/Images/BottomAd.png\" width=\"750\" align=\"center\"></a></p>\n",
    "</div>\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h3>About the Authors:</h3>\n",
    "\n",
    "This notebook was written by <a href=\"https://www.linkedin.com/in/mahdi-noorian-58219234/\" target=\"_blank\">Mahdi Noorian PhD</a>, <a href=\"https://www.linkedin.com/in/joseph-s-50398b136/\" target=\"_blank\">Joseph Santarcangelo</a>, Bahare Talayian, Eric Xiao, Steven Dong, Parizad, Hima Vsudevan and <a href=\"https://www.linkedin.com/in/fiorellawever/\" target=\"_blank\">Fiorella Wenver</a> and <a href=\" https://www.linkedin.com/in/yi-leng-yao-84451275/ \" target=\"_blank\" >Yi Yao</a>.\n",
    "\n",
    "<p><a href=\"https://www.linkedin.com/in/joseph-s-50398b136/\" target=\"_blank\">Joseph Santarcangelo</a> is a Data Scientist at IBM, and holds a PhD in Electrical Engineering. His research focused on using Machine Learning, Signal Processing, and Computer Vision to determine how videos impact human cognition. Joseph has been working for IBM since he completed his PhD.</p>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<hr>\n",
    "<p>Copyright &copy; 2018 IBM Developer Skills Network. This notebook and its source code are released under the terms of the <a href=\"https://cognitiveclass.ai/mit-license/\">MIT License</a>.</p>"
   ]
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python",
   "language": "python",
   "name": "conda-env-python-py"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
